私は、Pythonプログラムが起動し、C#プログラムをテストし、テストが終了した後に終了するテストスイートに取り組んでいます。再接続後にTCPデータが失われました。
C#プログラムにはTCPサーバーがあり、テストするためのアクションがいくつか発行されます。
ただし、時々データが失われます。私は、TCPデータをキャプチャし、コードを通じてデバッグしましたが、正確な理由を見つけることはできません。ダンプは私には非常に奇妙に見える、多分あなたが助けることができる?
773までフレーム1つの試験(ポート49xxx上のPython、2000年にC#)を示しています。データが交換されると、Pythonは771で接続を閉じます。この部分は機能します。
RSTが773で送信される理由はわかりませんが、私はTCPのエキスパートではありません。
774からは、C#アプリケーションが再起動され、Pythonはそれに接続しようとします。これは奇妙に見えます。データは779と781で送信されますが、C#では表示されません。
ここで私のアプリケーションがハングアップし、Pythonは応答を待っています.C#はデータの取得を待ちます。
これはおそらくローカルホスト上のすべてを実行しているので問題ではありませんが、私はそこから投げ捨てます。あなたは管理者としてログインしていますか?そうでない場合は、これらのプログラムを管理者として実行していますか?管理者として実行していない場合、Windowsが信頼できないソフトウェアからのネットワーク接続を強制終了するケースがあります。 – rtaft
トレースには、一緒に発生している一連のACKがあります。これは、接続の受信側が送信レートに追いついていないことを示します。また、パケットが再送信されていることを示すシーケンス番号が繰り返されています。私はパケットが再送信される前に時間を増やそうとします。接続の受信側は遅く、パケットを再送するackパケットは実行していません。最終的に接続の送信側はパケットのためのackを得ないので閉じます。 – jdweng
おそらく、私はあなたが正しくなることはありませんが、ログには一回の再送信は見えません。接続の両端は送受信しますが、データレートはかなり低くなっています。 クライアントの送信元ポートが774から変更されているため、別の接続です。 – Johannes