Tcp Communication不会在线工作

时间:2014-07-04 19:28:00

标签: c# .net tcp tcpclient tcpserver

您好,我遇到了问题, 我不是一个经验丰富的程序员,而且我目前正在开发一个带有服务器和多个客户端的简单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);
}

0 个答案:

没有答案