2013-03-12 138 views
18

我已經在這個幾天了,現在似乎無法找到解決方案。我想在iOS上通過wifi創建點對點網絡。所有開源代碼似乎都支持運行服務器或作爲客戶端,但是沒有任何代碼可以支持這兩者 - 同行。有人知道我可以做到這一點嗎?iOS上的對等網絡通過WiFi

+1

你看過類似的東西:https://github.com/robbiehanson/CocoaHTTPServer我知道它仍然是一個客戶端/服務器的關係,但它似乎內置Apple adhoc網絡API仍然是私人的。 – JiuJitsuCoder 2013-03-12 15:23:12

+0

我不清楚你的問題。您是否正在尋找允許您在兩臺iOS設備之間創建一個adhoc WiFi網絡的代碼,或者您是否正在尋找一種方式讓兩臺已通過WiFi連接的iOS設備執行p2p通信? – rmaddy 2013-03-12 16:21:12

+0

只需瞭解互聯網和BSD套接字如何工作。使用bind()調用。使用STUN服務器。使用很多套接字。使用可達性通知API。枚舉網絡接口。綁定到具體的端口。如果你願意,可以使用多播發送知識產權是美好的世界,但學習代碼爲蘋果的人永遠不會得到一個東西:-( – 2015-04-21 23:13:16

回答

3

您是否想過使用Apple的GameKit框架?我過去曾經使用它來進行設備之間的簡單通信。這非常簡單,可以讓你快速走出門外。 This看起來像一個很好的教程。

+0

問題是這涉及他們接受我的應用程序可以使用gamekit,這似乎有點隨機給用戶 – Andrew 2013-03-12 16:16:59

+0

哪個部分, GameKit,GameKit UI還是兩者兼而有之?您可以推出自己的所有自定義用戶界面,而且沒有人會更聰明.GKPeerPickerController將簡化您的開箱生活,看起來並不像一個人在玩遊戲。但是,您可以推出自己的解決方案並擁有自己的用戶界面。 – 2013-03-12 17:36:51

+0

我目前在非遊戲中使用GameKit進行p2p數據傳輸,並且我不知道用戶曾被提示接受或批准此功能。連接相當容易設置,但是,與Wi-Fi相比,連接數據傳輸速度較慢,而且數據傳輸速度較慢。 – arlomedia 2014-12-02 18:29:03

1

您無法在iOS中使用當前的API以編程方式創建Wi-Fi網絡。 GameKit提供了一些API來通過藍牙來實現。

如果您希望使用CocoaHTTPServer實現自定義解決方案,請注意,您仍然無法創建直接的Wi-Fi連接,只需將設備連接到相同(預先存在的)wi -fi網絡。

iOS中的臨時對等Wi-Fi(如802.11s)還有幾年的時間。也許iOSX;)

+0

[documentation](http://developer.apple.com/library/ios/#documentation/GameKit/Reference/GKSession_Class/Reference/Reference.html)說:GKSession對象提供使用藍牙或Wi-Fi發現和連接附近的iOS設備的能力。 – 2013-03-12 17:39:48

+0

只有藍牙用於直接點對點連接。無線局域網用於LAN上的Bonjour。 – cleverbit 2013-03-22 13:47:24

+0

GKSession在iOS 7 – user2159978 2015-01-09 09:24:53

14

iOS 7增加了Multipeer Connectivity Framework正是爲了這個目的。

+0

中已棄用工作鏈接https://developer.apple.com/library/ios/DOCUMENTATION/MultipeerConnectivity/Reference/MultipeerConnectivityFramework/index.html – sage444 2014-10-15 08:19:14

+0

請參閱multipeer連接的實際操作:http://youtu.be/ MgP8wm7_-Xk – Aace 2014-11-14 04:11:19

+1

我不建議你使用這個框架。它非常普遍,但速度太慢。 – user2159978 2015-01-09 08:31:20

1

iOS支持Multipeer Connectivity framework,它使iOS設備能夠通過藍牙,基礎設施(使用路由器)WiFi或P2P進行對話。

但是,它並沒有提供明確使用P2P的方式。從設備的任何對等設備(其他iOS設備)的連接方式上都有一個抽象層,它目前不允許連接非iOS設備。

3

我認爲Open Peer是正確的解決方案。它提供設備之間真正的直接點對點連接,而不需要中央服務器。看看這個介紹性的video

+2

開放同行通過互聯網 – Karthik 2015-08-25 22:24:59