私はasyncsocketを使用してWindows.netサーバーへのクライアントとしてcocoaasyncsocketを使用してきました。ProtocolBuffersを使用してメッセージをエンコードしています。一緒に、これらは素晴らしいツールのセットを作ります。
ただし、最近、クライアントをサーバーに接続したままにしておくと、データを要求しようとすると、メッセージは送信されたように見えますが、サーバーに到達しないことに気付きました。ネットワークに問題があった場合のような通常の切断を受信していないため、これを「サイレント」切断と呼んでいます。
デバッグするために次のメソッドを処理していますが、いずれも呼び出されません。
- (NSTimeInterval)onSocket:(AsyncSocket *)sock
shouldTimeoutReadWithTag:(long)tag
elapsed:(NSTimeInterval)elapsed
bytesDone:(CFIndex)length {
- (void)onSocket:(AsyncSocket *)sock willDisconnectWithError:(NSError *)err
- (void)onSocketDidDisconnect:(AsyncSocket *)sock
何の通知もなく、私はこれをデバッグするのが難しいと感じています。同様に、サーバーは切断を表示しません。
誰かがこれをさらに分析する方法に私を向けることができますか?
どうもありがとう。