SilverLight Socket Issue - PullRequest
       2

SilverLight Socket Issue

2 голосов
/ 05 июня 2011

Я пытаюсь написать приложение silverlight, сокет может подключиться к 127.0.0.1:4505, но событие arg.completed не работает

arg.RemoteEndPoint = new IPEndPoint(IPAddress.Loopback, 4505);
            arg.UserToken = sck;
            arg.Completed += new EventHandler<SocketAsyncEventArgs>(arg_Completed);
            sck.ConnectAsync(arg);

void arg_Completed(object sender, SocketAsyncEventArgs e)
        {
            label1.Content = "Durum!";
            if (e.LastOperation == SocketAsyncOperation.Connect)
            {
                label1.Content = "Bağlandı!";
            }          
        }

1 Ответ

0 голосов
/ 06 июня 2011

Считаете ли вы, что ConnectAsync может не выполняться асинхронно. Прочитайте его документацию здесь .

Вы должны проверять возвращенное логическое значение из ConnectAsync, если его true, то завершенное событие сработает, если нет, то операция завершится синхронно и ConnectAsync не сработает. Тот факт, что вы используете локальную версию 127.0.0.01, увеличивает вероятность синхронного завершения.

В синхронном соединении объект args, который вы передали в вызов, будет соответствующим образом мутирован.

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