2 つの異なるクライアントからの接続を受け入れる基本的な C# TCP コンソール サーバーを作成しています。その後、サーバーは 2 つのクライアントが接続した後にメッセージを受信できる必要があります。これは、接続が終了するまで続けられる必要があります。これまでのところ、クライアントにメッセージを送信することはできますが、2 つのクライアントが同時にサーバーと通信することに問題があります。ここにいくつかのスレッドを追加する必要があると確信していますが、私はそれが初めてなので、それを機能させる方法がわかりません。そこで助けが必要です。
string str1 = "";
string str2 = "";
Socket soc1;
Socket soc2;
NetworkStream straumur1;
NetworkStream straumur2;
BinaryReader lesari1;
BinaryReader lesari2;
BinaryWriter skrifari1;
BinaryWriter skrifari2;
IPAddress ipTala = IPAddress.Parse("127.0.0.1");
TcpListener hlustari = new TcpListener(ipTala, 50000);
Lesa lesa = new Lesa();
hlustari.Start();
//Notandi 1 tengist
soc1 = hlustari.AcceptSocket();
straumur1 = new NetworkStream(soc1);
skrifari1 = new BinaryWriter(straumur1);
lesari1 = new BinaryReader(straumur1);
skrifari1.Write("Leikmaður 1");
Console.WriteLine(">> Leikmaður 1 tengdist");
//Notnadi 2 tengist
soc2 = hlustari.AcceptSocket();
straumur2 = new NetworkStream(soc2);
skrifari2 = new BinaryWriter(straumur2);
lesari2 = new BinaryReader(straumur2);
skrifari2.Write("Leikmaður 2");
Console.WriteLine(">> Leikmaður 2 tengdist");
do //this is the part that needs fixing.
{
str1 = lesari1.ReadString();
skrifari1.Write(str1);
Console.WriteLine(str1);
} while (true);
do
{
str2 = lesari2.ReadString();
skrifari2.Write(str2);
Console.WriteLine(str2);
} while (true);