返回首页

我使用的插座,使用Visual Basic 2010中创建一个聊天的仿真应用。我已经成功地进行连接工作和我的应用程序的两个实例之间发送和接收数据。但是,当我关闭其中一个,另一个开始最后收到的消息,并将其添加到消息框反复,直到程序果酱和工作停止。我试图关闭连接,像这样的形式结束:

Private Sub ChatWindow_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing

        If Mode = mode.Server Then

            ServerSocket.Stop()

        End If

        NetworkStream.Close()

        ClientSocket.Close()

    End Sub
我希望应用程序能够充当服务器或只是作为客户端,所以我建立了一个通信模式(服务器或客户端,如果你开始作为服务器,你打开的TcpListener),似乎是工作的罚款。它只是当我想"注销"或只关闭两个应用程序之一。当我研究了所有我能找到的是,我不得不关闭网络流以及TcpClient的,但我想,我仍然有同样的问题。我怎样才能避免这种情况?我怎样才能知道当两个端点之一断开,只是在屏幕上显示一条消息,告诉大家,另一端是不再可用?此外,我怎么能知道,如果有一个客户端连接的,所以作为一个服务器上运行的实例不冻结时,它得到没有反应?

回答

评论会员:G 时间:2