【发布时间】:2014-03-27 05:50:55
【问题描述】:
我正在使用 TCPListener 创建一个带有 VB.NET 的语音服务器。为了检查传入的连接,我在 Form Load 方法中创建了一个无限循环,只要连接可用,它就会接受它,然后创建一个新线程来处理通信。以下是代码:
Private WithEvents SR As New SoundRecorder
Private TCPListener As TcpListener
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
TCPListener = New TcpListener(Net.IPAddress.Parse(GetIPv4Address), 2021)
TCPListener.Start()
While 1
If TCPListener.Pending = True Then
Dim voiceCom As New BroadcastSound(TCPListener.AcceptSocket())
Dim th As New Threading.Thread(AddressOf voiceCom.startCommunication)
th.Start()
End If
Application.DoEvents()
End While
End Sub
服务器完美运行并支持所有连接但问题是处理器使用率始终为 100%,因为无论是否连接任何客户端。有没有更好的方法来监听传入连接?
【问题讨论】:
标签: .net vb.net tcplistener