我有一个服务器应用程序和一个客户端应用程序。我正在使用套接字在服务器和客户端之间进行通信。如果只有一个客户端连接,一切正常:上传、下载一切正常。
但是如果有另一个客户端连接(我再次启动客户端应用程序,这意味着我的计算机上运行着 2 个客户端应用程序和 1 个服务器应用程序),我的服务器开始出现问题:服务器没有从客户端接收文件上传,客户端无法从服务器下载。
在服务器代码中,我已经为每个客户端连接使用了多线程,所以我无法找出问题所在。这是我的服务器代码:
private void ServerForm_Load(object sender, System.EventArgs e)
{
//...
Thread th = new Thread(new ThreadStart(ListenForPeers));
th.Start();
}
public void ListenForPeers()
{
serversocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
serversocket.Blocking = true;
IPHostEntry IPHost = Dns.GetHostEntry(server);
string[] aliases = IPHost.Aliases;
IPAddress[] addr = IPHost.AddressList;
IPEndPoint ipepServer = new IPEndPoint(addr[0], 8090);
serversocket.Bind(ipepServer);
serversocket.Listen(-1);
while (true)
{
clientsock = serversocket.Accept();
if (clientsock.Connected)
{
total_clients_connected++;
AppendText("Client connected...");
Thread tc = new Thread(new ThreadStart(listenclient));
tc.Start();
}
}
void listenclient()
{
// start communication
}
我的服务器代码是否有问题使其无法成为多客户端服务器系统?非常感谢您的帮助。提前致谢。