- ベストアンサー
MacとiOSアプリでのソケット通信について
- MacとiOSアプリでのソケット通信についての要約文1
- MacとiOSアプリでのソケット通信についての要約文2
- MacとiOSアプリでのソケット通信についての要約文3
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
気になるのは、 iPhone実機をWifi経由でMacと同じLANに繋いでテストしているか? (モバイルデータ通信でキャリア経由で通信してないか?) という点と、 Macのファイアーウォールでチャットサーバ(ポート#3000)を 外部から接続できるよう許可しているか? という点です。 まずは、この点を確認してみてください。
その他の回答 (1)
実際に、環境が同一なら、シミュレータで動くものは、実機でも動くはずです。 しかし、動かないなら、それは、どこかで、条件が、同じでないわけです。 もしかして、あなたは、 iOS Simulator - 同一のMac - サーバープログラム case-1 が、 iphone - サーバープログラム(Mac) case-2 で、サーバーアドレス替えただけで、同じと思っているのでしょうか? まず、 iOS Simulator(Mac-A) - サーバープログラム(Mac-B or PC) case-3 で、やってみることです。localhostなんてのは、絶対にタイムアウトが発生しない接続先なのですから。
お礼
解決しました。ありがとうございました。
補足
回答ありがとうございます。 iOSシミュレータ(Mac)とサーバプログラム(WindowsPC)で試した結果、きちんと通信出来ました。 なのでIPやポートの書き方は合っていると思います。そのソースのまま、実行先をiPhone実機に変更して実行してみたのですが、 ERROR: handshake failed ... The request timed out. とコンソールに出力されてしまいます。 また、試しにWindowsやMacからiPhoneに対してPingを飛ばしてみたのですが、通らず、 これが原因なのかなとも思いました。同一無線LANには接続されているのですが。。
お礼
ファイアーウォールを無効にしたところ、通信できました。 初歩的な問題でお恥ずかしい限りです。ありがとうございました。