シンプルなクライアント サーバー アプリケーションがあります。
クライアントのコード:
public class Client
{
private TcpClient client;
private NetworkStream stream;
...
public Client(string clientName)
{
this.client = new TcpClient();
this.client.Connect(this.Address, 13465);
this.stream = this.client.GetStream();
}
public void Listening()
{
while (true)
{
BinaryFormatter formatter = new BinaryFormatter();
string data = (string)formatter.Deserialize(stream);
// do something with data
}
}
...
}
リスニング メソッドは、データを受信するメソッドであり、ご覧のとおり、無限ループがあります。
問題は、サーバーからメッセージを 1 つしか受信できないことです。つまり、サーバーが文字列を送信し、この文字列を受信します。サーバーは私に別の文字列を送信し、クライアントは何もしません。
サーバーは数回 (Wireshark を使用しても) 確認するので、100% 確実に正常に動作します。サーバーからすべてのメッセージを受信するようにアプリケーションを改善する方法はありますか?