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
作为 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