2010-07-19 28 views
0

我正在爲C#中的在線遊戲編寫一個簡單的代理(更多的數據包記錄器)。所有的數據包都被代理接收到,但有些數據包沒有發送到客戶端(不確定服務器)。 例如:爲什麼不是所有的數據包都發送到客戶端?

客戶端 - >服務器:登錄數據包 - 我的代理接收數據包並將其顯示併發送到服務器。

服務器 - >客戶端:連接!數據包 - 我的代理再次接收數據包,它也顯示它並將其發送到客戶端。

服務器 - >客戶端:聊天頻道數據包 - 我的代理再次接收數據包,它也顯示它,但客戶端沒有收到它。沒有例外。

我的代碼:http://lesderid.pastebin.com/Km7vT2jF

(這是因爲這裏的同一個項目:Why can't I send to the listening socket anymore?

回答

1

這僅僅是從代碼的簡單閱讀:

  1. 不要綁定到127.0.0.1。改爲綁定到IPAddress.Any
  2. OnDataReceivedFromServer需要撥打EndReceive
  3. 我不建議在同一套接字上混合同步(Send)和異步(BeginReceive)操作。
相關問題