我試圖通過無線連接發送和接收來自iPad的TCP流,以便連接到筆記本電腦。我使用boost :: asio創建套接字。這個項目是一個數據流庫的端口,我維護它在Windows,OSX和Linux上運行得非常好。iOS上的TCP流不會顯示在無線網絡上
當我在模擬器上運行它時,我可以使應用程序在有線局域網上向/從其他計算機發送和接收數據流。但是,當我瞄準設備本身時,我看不到任何流。
正如我所說,我通過iPad和筆記本電腦之間的無線通信。我在筆記本電腦上創建一個無線網絡,然後給iPad一個靜態IP。連接似乎沒有問題,因爲我可以在不丟包的情況下ping iPad。我也嘗試將它們放在同一個無線局域網上(儘管我不應該在工作中使用無線路由器)來連接這些設備,但這也不起作用。
根據蘋果公司的說法,用NSStream設置這樣的數據流只會起作用。也許有一些權限魔術發生在引擎蓋下,我沒有用boost :: asio函數調用。無論如何,我看不到流。
iOS方面不需要魔法。你確定筆記本電腦上的防火牆有沒有阻止你的連接?當您嘗試打開流時會得到什麼結果?時間到?可以運行你在筆記本電腦上運行Wireshark來查看連接是否被嘗試? – Paulw11
謝謝。當然沒有防火牆。當我在iPad上打開一個lsl(lsl是我的庫的名稱)流時,我無法在筆記本電腦可用的lsl流的列表中看到它。當我打開或關閉流時,網絡上有一些小動作(根據wireshark),但流在運行時沒有任何動作。 – dmedine
如果您在建立連接時沒有發生超時或其他錯誤,並且Wire Shark顯示SYN-SYNACK-ACK數據包,那麼我建議您實際上沒有發送任何數據 – Paulw11