c# – 如何(真的)取消Windows Phone上的ConnectAsync请求?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 如何(真的)取消Windows Phone上的ConnectAsync请求?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1648字,纯文字阅读大概需要3分钟。
内容图文
![c# – 如何(真的)取消Windows Phone上的ConnectAsync请求?](/upload/InfoBanner/zyjiaocheng/966/215ce28f545f4a3783e22a3213569458.jpg)
我正在开发一个将连接到我的服务器的Windows Phone应用程序.当您按下登录按钮时,它通过使用ConnectAsync来完成此操作.但是,如果服务器已关闭并且您想要取消连接尝试,该怎么办?
这是当前客户端代码完成,我最近尝试关闭套接字连接.假设您知道如何关闭连接后可以轻松实现超时.
private IPAddress ServerAddress = new IPAddress(0xff00ff00); //Censored my IP
private int ServerPort = 13000;
private Socket CurrentSocket;
private SocketAsyncEventArgs CurrentSocketEventArgs;
private bool Connecting = false;
private void Button_Click(object sender, RoutedEventArgs e)
{
try
{
if (Connecting)
{
CurrentSocket.Close();
CurrentSocket.Dispose();
CurrentSocketEventArgs.Dispose();
CurrentSocket = null;
CurrentSocketEventArgs = null;
}
UserData userdata = new UserData();
userdata.Username = usernameBox.Text;
userdata.Password = passwordBox.Password;
Connecting = ConnectToServer(userdata);
}
catch (Exception exception)
{
Dispatcher.BeginInvoke(() => MessageBox.Show("Error: " + exception.Message));
}
}
private bool ConnectToServer(UserData userdata)
{
CurrentSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//Create a new SocketAsyncEventArgs
CurrentSocketEventArgs = new SocketAsyncEventArgs();
CurrentSocketEventArgs.RemoteEndPoint = new IPEndPoint(ServerAddress, ServerPort);
CurrentSocketEventArgs.Completed += ConnectionCompleted;
CurrentSocketEventArgs.UserToken = userdata;
CurrentSocketEventArgs.SetBuffer(new byte[1024], 0, 1024);
CurrentSocket.ConnectAsync(CurrentSocketEventArgs);
return true;
}
编辑:一个令我印象深刻的想法是,即使服务器软件没有打开,也许是服务器计算机堆叠了请求?那可能吗?
解决方法:
我相信
socket.Close()
应该取消异步连接尝试.可能会有一些例外需要被捕获.
内容总结
以上是互联网集市为您收集整理的c# – 如何(真的)取消Windows Phone上的ConnectAsync请求?全部内容,希望文章能够帮你解决c# – 如何(真的)取消Windows Phone上的ConnectAsync请求?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。