2012-07-26 88 views
0

我想知道如何在局域網P2P網絡中實現發現功能。 我不想使用.NET 3.5 P2P庫,我想自己設計它。對於當用戶按下連接按鈕時,他在局域網中發送廣播消息,通知其他節點他可用。接收線程上的其他對等方標識該消息,並按其意願建立連接。例如: 例如: 機器1的IP 192.168.0.101按下連接並在「255.255.255.255」處發送消息「Command.Connect」以進行廣播 機器2的IP 192.168.0.102等待在Udp消息的Thread上並標識該對等與IP 192.168.0.102 當用戶按下斷開連接時,另一個命令「Command.Disconnect」以相同的方式發送。 你能否告訴我,如果發現局域網中的同行是一個好主意?P2P發現功能

+0

查看此鏈接http://stackoverflow.com/questions/6829141/send-multiple-pings-without-waiting-for-reply-windows-c -sharp/6829491#6829491 – 2012-08-02 07:35:44

回答

1

如果你只爲簡單的局域網設計它,那麼你也可以考慮使用IP多播而不是UDP廣播。使用IP-Multicast,您的新對等方只會將消息發送給感興趣的對等方,但在廣播的情況下,即使您的聊天程序未運行,您的消息也會發送給所有計算機。但是,這兩種選擇都有優點和缺點,並取決於您的要求和您的應用程序的未來計劃。

其次,如果你有可能在系統中有一臺服務器,那麼它可以更好地調整。您可以在點對點模型上保留聊天消息,但是當某個對端聯機時,它可以向專用服務器註冊,並要求服務器提供其他註冊對端的列表,然後您可以直接與其他對等端進行交互。如果您打算添加身份驗證等功能,這也會很有幫助。

+0

非常感謝Tayyab!我想我會切換到我的視頻會議項目的P2P服務器控制系統。 – 2012-08-12 18:44:46