在向客户端发送UDP数据包时,服务器是否接收刚刚发送的数据包?

时间:2016-12-02 23:31:09

标签: java sockets udp

我正在使用UDP进行客户端/服务器通信,我让客户端发送服务器接收的数据包,然后服务器发送数据包响应,但是当服务器发送响应时服务器是接收响应的服务器,不是客户。

我有一个Server对象在一个进程中运行,一个Client对象在另一个进程中运行并连接到localhost。客户端和服务器都继承自AbstractHost。 AbstractHost有一个Sender和一个Receiver对象。接收器有一个接收(阻塞)的线程,直到数据包进入,当数据包进入时它将数据包数据传递给客户端/服务器的“onReceive”功能。它导致服务器发送数据包的服务器无限循环,然后服务器收到数据包(它不应该)导致它发送另一个数据包等......

据我所知,这是因为我在同一台计算机上进行操作,但出于测试目的,我需要能够工作。

代码:http://pastebin.com/raw/jhX98Jhp 使用pastebin,因为stackoverflows代码格式化对我来说不起作用

1 个答案:

答案 0 :(得分:1)

显然UDP客户端不会通过定义的端口发送数据包,因此从接收到的数据包中抓取端口并使用它来响应修复它。