0

サーバーとクライアントを無制限に実行してデータを交換できるようにするにはどうすればよいですか (つまり、アプリケーションが閉じられるまで)。試してみましwhile(true)たが、適切な場所に配置しなかった可能性があり、ソケットとリスナーを閉じて停止する方法に実際には到達できません。サーバーのコードの一部を次に示します。

public static void StartServer()
        {
            try
            {
                IPAddress ip = IPAddress.Parse("192.168.1.11");
                TcpListener myListener = new TcpListener(ip, 8000);

                myListener.Start();

                Socket s = myListener.AcceptSocket();

                byte[] b = new byte[100];
                int k = s.Receive(b);

... some other actions ...

                s.Close();
                myListener.Stop();
            }

そして、それMain()を呼び出す場所。クライアントと同じ話です。

4

1 に答える 1

3

受信関数の処理データを含み、受信に戻る無限ループを作成できます。そうすれば、サーバーまたはクライアントが終了するまで、サーバーは常にクライアントからのデータを除外します。

while(true)
{
       byte[] buffer = new byte[100];
       s.Receive(buffer);
       //Do something with data...
}

現在の設計では 1 つのクライアントしかサポートされていないため、十分に注意してください。複数のクライアントをサポートしたい場合は、スレッドの使用を検討してください。

于 2013-04-08T22:22:42.687 に答える