TCP客户端Socket怎么立即释放端口

2025-05-17 08:07:32
推荐回答(1个)
回答1:

'及时清除不用的子线程。
Private Sub dogthread(ByVal Tzobj As System.Object, ByVal e As System.EventArgs)
dogrunBZ(Tzobj) = True '正在运行时,防止重复运行
Try
mySocket(Tzobj).Shutdown(SocketShutdown.Receive) '关闭套接字接收
'mySocket(Tzobj).Shutdown(SocketShutdown.Both) '组态王对此条支持不好
Catch
End Try
Try
mySocket(Tzobj).Close() '引发子线程立即异常,中断子线程循环
Catch
End Try
Try
myThread(Tzobj).Abort() '中止某个线程,销毁这些线程,需要很多时间!
myThread(Tzobj).Join(300) '等待300毫秒,超时也终止,防止不出来
Catch
End Try
Try
mySocket(Tzobj) = Nothing '防止组态王响应没那么快!!!
Catch
End Try
GC.Collect()
dogrunBZ(Tzobj) = False '运行完毕标志
End Sub