我正在使用UDP進行我正在製作的遊戲,但這個問題並不一定是遊戲特定的。我注意到,無論何時我想在本地測試某些東西並使用廣播,UDP客戶端發送一些數據的機會也是同一個客戶端再次接收它,而不是其他客戶端也從同一臺機器連接。使用UDP測試多人遊戲客戶端/服務器?
如何在一臺機器上有效地進行測試和調試,在兩臺機器上使用的情況下進行仿真?
我正在使用UDP進行我正在製作的遊戲,但這個問題並不一定是遊戲特定的。我注意到,無論何時我想在本地測試某些東西並使用廣播,UDP客戶端發送一些數據的機會也是同一個客戶端再次接收它,而不是其他客戶端也從同一臺機器連接。使用UDP測試多人遊戲客戶端/服務器?
如何在一臺機器上有效地進行測試和調試,在兩臺機器上使用的情況下進行仿真?
兩個選項:
client -> server
是端口2001,server -> client
是端口2002.後一個選項不需要您更改代碼,但每次更改代碼時都需要將服務器或客戶端應用程序複製到VM。
您是否使用某種標識符(用戶名或ID)來檢測誰發送了原始郵件?
檢查收到的消息是否與接收方使用相同的標識符發送,如果是,則丟棄該消息。
由於某些原因(根據我的調試結果),只有一個客戶端收到該消息。另一個沒有。 –
@Mathias怪異的,它應該[可能](http://stackoverflow.com/questions/1694144/can-two-application-listen-to-the-same-port)。 – CodeCaster
我明白了。任何想法,爲什麼它可能會發生?重用地址設置爲true就好了。 –
但是對於UDP,我不能有2個不同的端口,可以嗎? –
此外,當我使用廣播時,這將如何工作? –
是的,你可以有多個端口。只需使用兩個'UdpClient'實例。如果您正在廣播,可以在兩個獨立的頻道上使用多播,或者按照CodeCaster的說法進行播放,並在消息中放置一個「to」標題。 – Polynomial