试图启动一个监听器套接字

时间:2012-01-07 12:02:42

标签: c# sockets

我尝试按照MSDN上的exmaple创建异步服务器。但似乎无法连接到它。

http://msdn.microsoft.com/en-us/library/5w7b7x5f.aspx

这就是我所拥有的......

还要注意AddressList [2],这不是错误;)

private static Socket mListenerSocket;

IPHostEntry ipHostInfo = Dns.GetHostEntry(Dns.GetHostName());
IPEndPoint localEP = new IPEndPoint(ipHostInfo.AddressList[2], port);

// This line outputs 192.168.0.6:6809 (which is correct)
Console.WriteLine("{0}", localEP.ToString());

mListenerSocket = new Socket(
    ipHostInfo.AddressList[2].AddressFamily, 
    SocketType.Stream, 
    ProtocolType.Tcp);

mListenerSocket.Bind(localEP);
mListenerSocket.Listen(10);
mListenerSocket.BeginAccept(new AsyncCallback(AcceptCallback), mListenerSocket);

我的回调方法定义为:

private static void AcceptCallback(IAsyncResult ar)
{
    // It does not even get here
    mListenerSocket.EndAccept(ar);
}

我希望当我使用'telnet 192.168.0.6 6809'进行telnet时,它应该跳转到AcceptCallback方法,但它没有,所以没有建立连接。

所以任何想法为什么它不起作用?没有错误可以帮助我:(

我尝试过使用TcpListener,但仍无济于事:(

mListenerSocket = new TcpListener(IPAddress.Any, port);
mListenerSocket.Start();
mListenerSocket.BeginAcceptSocket(new AsyncCallback(AcceptCallback), mListenerSocket);

1 个答案:

答案 0 :(得分:1)

我的防火墙阻止了与客户端的连接。即使我禁用了它,我也必须重新启动Visual Studio来捕获它。