VB.NET下socket端口立即释放问题
现用socket每秒连接一次PLC取数据。代码如下
Dim sock As Socket
For i = 0 To mDtSensorChannel.Rows.Count - 1
sock = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
'连接
sock.Connect(SensorPlcIp, 9600)
'握手
......
'读命令
......
'接收
......
'关闭
sock.Close()
System.Threading.Thread.Sleep(1000)
Next i
sock.Close()后随机分配的端口要time_wait一会(240秒)才完全释放掉。由于每一秒连接一次,几天服务器端口就耗尽连接失败了
即时是指定固定端口设置立即重用也没法消除sock.Close()后端口time_wait时间
localEP = New System.Net.IPEndPoint(System.Net.IPAddress.Any, 2000)
sock = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
sock.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, True)
sock.Bind(localEP)
第2秒去连接时因为该端口time_wait也是失败的
大家帮帮忙,看看怎么能解决这个问题?每秒取一次数据时间不能延长, sock.Connect放在for循环外部还取不到PLC数据
[解决办法]
该回复于2010-12-15 11:17:37被版主删除
[解决办法]
请问,问题解决了吗?
VB.NET上socket端口立即释放有关问题
VB.NET下socket端口立即释放问题现用socket每秒连接一次PLC取数据。代码如下 Dim sock As SocketFor i 0
