2016-12-02 150 views
-1

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

我有一个服务器对象在一个进程中运行,并且一个客户端对象正在另一个进程中运行并连接到本地主机。客户端和服务器都从AbstractHost继承。 AbstractHost有一个Sender和Receiver对象。接收器有一个线程,它位于接收(阻塞)状态直到有数据包进入,当数据包进入时它将数据包数据传递到客户端/服务器的“onReceive”函数。它导致服务器中的一个无限循环,服务器发送一个数据包,然后服务器接收到数据包(它不应该),这会导致它发送另一个数据包等等......

据我所知,这是因为即时通讯在同一台计算机上,但为了测试的目的,我需要这个能够工作。

代码:http://pastebin.com/raw/jhX98Jhp 使用引擎收录,因为stackoverflows代码格式化从来没有对我的作品

+0

只是为了澄清,因为我起初有一个问题。客户端将数据包发送到服务器。然后服务器发送一个响应数据包,但不是将它发送给客户端,而是将它发送给自己。 –

+1

*“使用pastebin,因为stackoverflows代码格式不适合我”* - 适用于其他人。你只需要学习如何使用它。提示:摆脱TAB字符。 –

回答

1

显然UDP客户端将无法在定义的端口发送数据包,所以抓住从接收到的数据包的端口并用它来应对固定它。

相关问题