小编Swi*_*ice的帖子

如何(真正)取消Windows Phone上的ConnectAsync请求?

我正在开发将连接到服务器的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 …
Run Code Online (Sandbox Code Playgroud)

c# asynchronous network-programming windows-phone windows-phone-7.1

5
推荐指数
1
解决办法
1606
查看次数