【问题标题】:Multiple Clients on TCPListener C# / Server sending Data [duplicate]TCPListener C#/服务器上的多个客户端发送数据[重复]
【发布时间】:2018-09-18 02:24:49
【问题描述】:

作为 C# 和 C# 网络编程中的“新手”,我尝试使用 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);
            }
        }

如果您在我的代码中发现任何荒谬/错误,请告诉我我在这里学习!

谢谢

【问题讨论】:

  • 我认为这不是关于通过 TCP 发送 JSON 序列化数据的问题的重复。尽管该问题包含有关 TCP 通信的完整示例,但可以通过修复代码中可见的 OP 的误解和错误来回答此问题。
  • 现在我想起来了,这个问题适合 CodeReview,但是将它标记为版主发现的第一个 TCP 相关问题的副本是错误的 imo。我建议 OP 提出上诉。

标签: c# .net tcpclient tcp-ip tcplistener


【解决方案1】:

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

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

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

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

【讨论】:

猜你喜欢
  • 2014-03-16
  • 2014-04-08
  • 2017-06-14
  • 1970-01-01
  • 2019-09-10
  • 2021-12-04
  • 1970-01-01
  • 2014-03-08
  • 1970-01-01
相关资源
最近更新 更多