Server.cs - https://hastebin.com/enajinewij.cs
Client.cs - https://hastebin.com/iriperubur.cs
我已经尝试在另一台PC上运行客户端并在一台PC上运行它,但两者都导致客户端无法接收或发送任何消息。
我无法前进。我使用Hamachi作为IP地址。客户端和服务器都连接到我的网络并使用Hamachi IP地址。我正在使用PDA Net从我的电脑连接到互联网。
服务器根本看不到它们的连接。服务器也不会从中获取任何消息。目前只有服务器可以发送消息,只有它才能获取消息。
我根本没有收到任何错误,所以我不确定如何解决这个问题,因为这是我第一次使用网络。
答案 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
}