TCPListener C#/服务器上的多个客户端发送数据

Multiple Clients on TCPListener C# / Server sending Data

作为 C# 和 C# 网络编程的 "novice" 我尝试使用 TCPClient 和 TCPListener 在 C# 中进行简单的聊天,我已经设法将数据从客户端发送到服务器,但是如果我添加第二个客户端服务器不读取他的数据,我有第二个问题,我不知道如何使用 TCPListener 从服务器向客户端发送数据。

服务器:

    while (true)
    {
        Socket client = Server.AcceptSocket();
        Console.WriteLine("Connection accepted from " + client.RemoteEndPoint);
        count += 1;

        string msg;
        byte[] buf = new byte[1024];
        client.Receive(buf);

        msg = Encoding.UTF8.GetString(buf);
        Console.WriteLine("Received...  " + msg + "");

    }
}

客户:

while (true)
        {
            Console.WriteLine("Connected");
            Console.Write("Enter the string to be transmitted : ");

            String msg = Console.ReadLine();
            Stream stm = tcpClient.GetStream();

            ASCIIEncoding asen= new ASCIIEncoding();

            byte[] send = asen.GetBytes(msg);
            Console.WriteLine("Transmitting.....");
            stm.Write(send, 0, send.Length);

            if (msg == "/Q"){
                tcpClient.Close();
                Environment.Exit(0);
            }
        }

如果您在我的代码中看到任何荒谬/错误,请告诉我,我是来学习的!

谢谢

我不是最擅长 C# 的地方 post Server Client send/receive simple text 如何创建 C# 简单服务器,应该解决客户端无法从服务器接收数据的第一个问题。

至于不能支持多连接的第二个问题,这可能与没有线程有关,所以问题是你想创建一个 C# web 服务器还是一个 C# 应用程序,它利用 TCP 通信来服务器。

如果答案是后者,那么我会考虑安装久经考验的服务器,例如 Apache 或 Nginx。这将允许服务器代表您处理多个请求,而无需处理多个连接和线程,同时您正在了解有关客户端服务器关系的更多信息。此外,本文可能有助于为应用程序设置 fastcgi 环境 http://www.mono-project.com/docs/web/fastcgi/nginx/

否则你将不得不研究如何处理多个客户端,这个 post 看起来可以帮助 TCP server with multiple Clients