Попытка запустить сокет слушателя - PullRequest
1 голос
/ 07 января 2012

Я попытался следовать примеру на MSDN для создания асинхронного сервера. Но, кажется, ничто не может подключиться к нему.

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, используя 'telnet 192.168.0.6 6809', он должен перейти к методу AcceptCallback, но это не так, поэтому соединение не установлено.

Так есть идеи, почему это не работает? Нет ошибок, чтобы помочь мне: (

Я попытался вместо этого использовать TcpListener, но опять-таки безрезультатно: (

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

1 Ответ

1 голос
/ 07 января 2012

Мой брандмауэр препятствовал подключению к клиенту.Несмотря на то, что я отключил его, мне пришлось перезапустить Visual Studio, чтобы захватить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...