Tcp服务器仅允许1个客户端

时间:2017-01-11 03:31:01

标签: c# unity3d

Server.cs - https://hastebin.com/enajinewij.cs

Client.cs - https://hastebin.com/iriperubur.cs

我已经尝试在另一台PC上运行客户端并在一台PC上运行它,但两者都导致客户端无法接收或发送任何消息。

我无法前进。我使用Hamachi作为IP地址。客户端和服务器都连接到我的网络并使用Hamachi IP地址。我正在使用PDA Net从我的电脑连接到互联网。

服务器根本看不到它们的连接。服务器也不会从中获取任何消息。目前只有服务器可以发送消息,只有它才能获取消息。

我根本没有收到任何错误,所以我不确定如何解决这个问题,因为这是我第一次使用网络。

1 个答案:

答案 0 :(得分:1)

首先,您创建一个TcpListener,然后拨打StartLis() BeginAcceptTcpClient。但是,在AcceptTCPClient中,您创建了 TcpListener,并且未调用BeginAcceptTcpClient

您不必为每个连接创建新的侦听器,但您必须再次呼叫BeginAcceptTcpclient

private void AcceptTCPClient(IAsyncResult ar)
{
    TcpListener Lis = (TcpListener)ar.AsyncState;

    Clients.Add(new ServerClient(Lis.EndAcceptTcpClient(ar)));

    StartLis(); // this will call BeginAcceptTcpClient again
}