2010-01-06 109 views
2

我有幾部手機和另一對PC連接到Wifi接入點,需要在這兩者之間發送和接收消息,我的意思是任何人都可以向任何人發送消息並接收任何人的消息。如何在連接到WiFi接入點的設備之間進行通信?

我願意寫在手機上(Symbian操作系統,S60平臺)或PC(的Windows),但我不能理解的是,我怎麼建立一個客戶端或服務器,因爲任何應用程序其中一個設備可能是客戶端或服務器。

如果我使用套接字我有腳本ServerSockets對這些設備的套接字?我可以使用HTTP協議嗎?

或者我可以用來實現這個的任何標準協議?

回答

2

您將廣播UDP數據包,這些數據包將到達Wifi網絡上的每個設備。您將不得不制定自己的協議來決定每個設備的身份,因爲您無法輕鬆推斷出您的網絡設備的IP地址。如果不編寫選舉算法,您會發現很難使用客戶端/服務器架構,因此只需使用點對點(P2P)。

Google for UDP廣播並在ietf.org上閱讀相關的RFC。

+0

啊,哎呀,沒有注意到「任何對任何」的部分。是的,UDP聽起來是對的。 – spieden 2010-01-07 00:05:47

2

看起來你正在尋找IP上非常典型的點對點通信。我想其他需求將決定你使用哪種傳輸方式(HTTP,原始套接字等),但是:每個節點都是客戶端和服務器。您可以使用MDNS(http://www.multicastdns.org/)來幫助節點以特別的方式找到彼此。

+0

這個MDNS是做什麼的?我還沒有真正理解這個概念? – 2010-01-07 01:19:06

+0

我沒有意識到你只是想做廣播。 MDNS將允許節點(電話,電腦)按照名稱以特別的方式發現彼此,但如果您只是想要廣播,那並不重要。 – spieden 2010-01-08 00:43:52