我想創建一個三方通信系統,在這個系統中,每一方都有平等的權利,並有兩個溝通渠道給他的合作伙伴。
該程序是分散的,每臺機器運行相同的代碼,其中有三個IP地址的列表,每個代表一臺機器。對於每臺機器,合作伙伴的IP地址通過查看自己的IP地址並使用列表中的其他兩個IP地址來確定。建立沒有服務器的同等客戶端的雙向TCP通信的最佳方式是什麼?
現在有在該機器都被人打開沒有預定的順序,有沒有什麼辦法來控制不是設置它像
其他的TCP通信「,如果你想在IP地址說話高於你的自己,連接到服務器,否則你是服務器,並接受套接字'?
最後,我想要一個TCPread(port)
,每發送一封來自任何IP的消息和一個發送消息的TCPwrite(port, ip, message)
就會觸發。
我的想法是一個TCP處理程序,它存儲了我爲每個端口獲取的所有套接字,我計劃在每個端口使用一個線程在程序中使用它。然後每次執行讀取或寫入操作時,它都會檢查處理程序中是否有端口和IP地址的套接字,如果沒有,則將套接字發送到IP並等待響應...我不認爲我已經完全理解整個TCP事物。
那麼明白了一件事......總有將是'一個服務器「...但是從你想要的東西像是動態是.. – 3kings
你有沒有調查http://jgroups.org/? – Mark
我知道那裏*總是會是一個服務器,我只是不知道在哪裏以及如何協商哪一方在這種情況下做什麼。 @Mark:這看起來有點過頭了,溝通意圖是非常基本的。 –