您好,我遇到了问题, 我不是一个经验丰富的程序员,而且我目前正在开发一个带有服务器和多个客户端的简单Tcp系统,只要服务器从客户端收到消息,就会将此消息发送给所有连接的客户端。 如果我只是在本地使用它,整个应用程序似乎太有效了,只需告诉客户:
clientSocket.Connect(IPAddress.Loopback, 8000);
但是我想测试它是否可以在线使用:
clientSocket.Connect("0.0.0.0", 8000); //0.0.0.0 beeing my local Ip Address
但它不起作用它总是抛出异常。
接受客户端的服务器部分看起来像这样:
private static List<Socket> clientSockets = new List<Socket>();
static Socket ServerSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream,
ProtocolType.Tcp);
private static void RunServer()
{
Console.WriteLine("Setting up...");
ServerSocket.Bind(new IPEndPoint(IPAddress.Any, 8000));
ServerSocket.Listen(100);
ServerSocket.BeginAccept(new AsyncCallback(AcceptCallback), null);
Console.WriteLine("Accepting Clients...");
}
private static void AcceptCallback(IAsyncResult AR)
{
Socket socket = ServerSocket.EndAccept(AR);
clientSockets.Add(socket);
Console.WriteLine("Client connected");
ServerSocket.BeginAccept(new AsyncCallback(AcceptCallback), null);
socket.BeginReceive(buffer, 0, buffer.Length, SocketFlags.None,
new AsyncCallback(ReceiveCallback), socket);
}