iPhone とホスト間の双方向 IP/TCP 接続を実装する方法。
1 に答える
TCP/IP 通信は双方向通信です。
True: サーバーは接続をリッスンする必要があり、クライアントは接続が失われた場合に備えて接続を再確立する必要があります。
ただし、接続中にクライアントはサーバーにメッセージを送信し (必要な場合)、サーバーからサーバーにメッセージを送信できます。
接続を維持するには (一定期間非アクティブになった後に強制終了することができます)、ダミーの (キープアライブ) 文字列を定期的に送信できます。通常はクライアントからサーバーに送信されますが、逆の場合もあります。
iOS クライアントとサーバー (PC ベースでも何でもかまいません) 間の接続を確立する方法と、クライアントからサーバーに文字列を送信する方法を既に知っているので、サーバーからクライアントへの通信を実装するだけです。
正確な方法は、iOS および PC サーバーで使用するソケットのタイプによって異なります。
Cesare Rocchi による素晴らしいチュートリアルがここにあります: How To Create A Socket Based iPhone App and Server
GitHub の Robbie Hanson による CocoaAsyncSocketと呼ばれる、非常に有用で十分に文書化された Cocoa 用のソケット ラッパーもあります。
編集:
あなたの場合、通常、片側に少なくとも 1 つのソケットベースのクライアントがあります。クライアントは、接続が失われた場合に接続を再確立しようとする (または初めて確立する) 責任があります。
反対側にはリスナーソケット (新しい接続をリッスンするソケット) があります。(クライアントからの)新しい接続ごとに、新しいソケットが生成され、そこから双方向通信を処理できます。したがって、client->server は接続の確立中にのみ必要です。