首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 實作 P2P 網路通訊程式 (5) — 伺服器轉發打洞請求與測試困惑

     編輯:關於C語言

伺服器處理 P2P 連線請求

收到客戶端 P2PConnectionPacket,轉發 P2PPurchHolePacket 給目標使用者:


private void ProcP2PConnectMsg(Packet packet, IPEndPoint remoteEP) {
    P2PConnectionPacket transMsg = (P2PConnectionPacket)packet;
    printf("{0}({1}) wants to p2p {2}", remoteEP.Address, transMsg.UserName, transMsg.ToUserName);
    PeerEntity toUser = userList.SingleOrDefault(c => c.UserName == transMsg.ToUserName);

    P2PPurchHolePacket transMsg2 = new P2PPurchHolePacket(transMsg.UserName, toUser.UserName);
    byte[] buffer = UtilityHelper.Serialize(transMsg2);
    server.Send(buffer, buffer.Length, toUser.RemoteEndPoint);
}

測試畫面

a、伺服器端
b、客戶端

待解決困惑

  1. 能否實現外網通訊?要像 QQ 那樣需哪些改進?
  2. 檔案斷點續傳如何實現?
  3. C# 封裝網路操作類(參考 QQ.Net 原始碼 Net 實作)?
  4. 遠端桌面協助如何實現?

期待大家共同討論、共同進步!

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved