我尝试按照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);
答案 0 :(得分:1)
我的防火墙阻止了与客户端的连接。即使我禁用了它,我也必须重新启动Visual Studio来捕获它。