0

我目前已经制作了一个多合一的点对点“聊天”程序。它目前使用计时器来接收消息,并使用客户端将它们发送给运行该程序的其他人。我真的很想让整个系统异步,所以我不再抱怨主要可执行文件冻结等。

我在这里粘贴了我所有的代码(VB.net):http: //pastebin.com/EcrtCgVc

有人可以帮助我使这个系统更快、异步或做得更好。

如果您想要完整来源的保管箱的链接,我也可以提供。

4

2 回答 2

0

我建议你看看这个示例项目:

异步服务器套接字示例

http://msdn.microsoft.com/en-us/library/fx6588te%28v=vs.110%29.aspx

您可以将它与此示例一起使用:

异步客户端套接字示例

http://msdn.microsoft.com/en-us/library/bew39x2a%28v=vs.110%29.aspx

您可能需要在服务器代码中使用异步方法,并且您可以使用 Delegate Sub 使您的服务器在另一个线程中运行,因此主线程(UI)仍将响应。 http://msdn.microsoft.com/en-us/library/ms172879.aspx

于 2014-05-12T20:25:57.737 回答
-1

在不查看您的代码的情况下,我也在使用套接字编程。“不要将 GUI 代码与业务代码混用。” 就像 jgauffin 所说,您不应该将在后台运行的代码与 GUI 结合起来。

例如,如果您使用套接字来接受数据或连接,则必须在新线程上运行该方法。例子...

Public Sub YourMainSub()
    Dim threadOne As New System.Threading.Thread(AddressOf ListenCode)
    threadOne.Start()
    'Put other code here.....
End Sub
Public Sub ListenCode()
    Dim newPerson = yourServer.Accept()
    'Or
    Dim newData = yourServer.Receive()
End Sub

抱歉,如果代码不完全正确。我是凭记忆打出来的。

于 2013-03-08T19:56:40.313 回答