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

标签 c# .net tcpclient tcp tcplistener

<分区>

作为 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);
            }
        }

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

谢谢

最佳答案

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

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

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

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

关于c# - TCPListener C#/服务器上的多个客户端发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49720212/

相关文章:

c# - Oracle ODP.Net 和 EF CodeFirst - SaveChanges 错误

c# - 如何使用 .net 连接到 Facebook 聊天?

c# - 在网络流上安全超时 ReadLine

C# 使用FileStream读取 'Zip'文件

C# PulseAll 不唤醒 sleep 线程

c# - WP7 透视变换(3D 矩阵与 PlaneProjection)

.net - 按钮不呈现为 XP 样式

node.js - 如何测试nodejs的tcp服务器

c# - 对父窗体或目标控件使用 Invoke 之间有什么区别吗?

c# - 检测以太网线何时插入