SilverLight Socket问题

时间:2011-06-05 10:36:35

标签: c# silverlight sockets

我正在尝试编写一个silverlight应用程序,socket可以连接到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 :(得分:0)

您是否认为ConnectAsync可能无法异步完成。阅读其文档here

你应该测试ConnectAsync的返回布尔值,如果它是true,那么完成的事件将被触发,如果没有,则操作同步完成,ConnectAsync将不会触发。您使用本地127.0.0.01的事实增加了同步完成的可能性。

在同步连接上,传递给调用的args对象将相应地进行变异。