我一直在开发TCP服务器,我要求它允许同时访问多个客户端。
我还要求它允许它们随时断开连接并重新连接,并且每当它们发送TCP消息以便逻辑在其后面运行时也是如此。
我的基本代码设置允许一个用户同时连接,但是它不允许多个客户端。
服务器代码 - (第一部分,没有逻辑)
IPAddress ipAd = IPAddress.Any;
TcpListener myList = new TcpListener(ipAd, 5001);
myList.Start();
Console.WriteLine("Waiting for a new connection");
Console.WriteLine("Last Connection From - " + client);
Console.Write("Stats - Errors: ");
Console.BackgroundColor = ConsoleColor.Red;
Console.Write(" " + Errors + " ");
Console.BackgroundColor = ConsoleColor.DarkCyan;
Console.WriteLine();
Console.WriteLine();
Console.Write(feed);
Socket s = myList.AcceptSocket();
client = Convert.ToString(s.RemoteEndPoint);
Console.Write(feed);
byte[] b = new byte[100];
int k = s.Receive(b);
Console.WriteLine("\n Message Recieved");
string msg = "";
for (int i = 0; i < k; i++)
{
msg = msg + Convert.ToChar(b[i]);
}
feed = feed + " \n " + msg;
还有客户代码,我不打算放在这里,因为我不相信它是必要的。如果您对客户有任何问题或改进/修改,请询问/告诉我,我会看一看。
我被告知有办法通过另一个线程做到这一点,但我还没有得到如何接近它的线索。