2016-12-02 188 views
-1

我正在使用UDP進行客戶端/服務器通信,我讓客戶端發送服務器收到的數據包,然後服務器發送數據包響應,但是當服務器發送響應時服務器是接收響應的服務器,而不是客戶端。向客戶端發送UDP數據包時,服務器是否接收到它剛發送的數據包?

我有一個服務器對象在一個進程中運行,並且一個客戶端對象正在另一個進程中運行並連接到本地主機。客戶端和服務器都從AbstractHost繼承。 AbstractHost有一個Sender和Receiver對象。接收器有一個線程,它位於接收(阻塞)狀態直到有數據包進入,當數據包進入時它將數據包數據傳遞到客戶端/服務器的「onReceive」函數。它導致服務器中的一個無限循環,服務器發送一個數據包,然後服務器接收到數據包(它不應該),這會導致它發送另一個數據包等等......

據我所知,這是因爲即時通訊在同一臺計算機上,但爲了測試的目的,我需要這個能夠工作。

代碼:http://pastebin.com/raw/jhX98Jhp 使用引擎收錄,因爲stackoverflows代碼格式化從來沒有對我的作品

+0

只是爲了澄清,因爲我起初有一個問題。客戶端將數據包發送到服務器。然後服務器發送一個響應數據包,但不是將它發送給客戶端,而是將它發送給自己。 –

+1

*「使用pastebin,因爲stackoverflows代碼格式不適合我」* - 適用於其他人。你只需要學習如何使用它。提示:擺脫TAB字符。 –

回答

1

顯然UDP客戶端將無法在定義的端口發送數據包,所以抓住從接收到的數據包的端口並用它來應對固定它。

相關問題