我正在尝试编写一个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ı!";
}
}
答案 0 :(得分:0)
您是否认为ConnectAsync
可能无法异步完成。阅读其文档here。
你应该测试ConnectAsync
的返回布尔值,如果它是true
,那么完成的事件将被触发,如果没有,则操作同步完成,ConnectAsync
将不会触发。您使用本地127.0.0.01的事实增加了同步完成的可能性。
在同步连接上,传递给调用的args对象将相应地进行变异。