套接字打开后开始请求数据,发送数据未见错误,但是接收时,老是出现tcpAsyCl.Connected=false,程序老是调到Else后面,打上断点后发现tcpAsyCl.Connected=false,为什么接收数据时套接字会断开??
If (tcpAsyCl IsNot Nothing) And (tcpAsyCl.Connected) Then Try
ReDim tcpSyncClBuffer(ReadByteLen - 1)
tcpAsyCl.Receive(tcpSyncClBuffer, tcpSyncClBuffer.Length, SocketFlags.None)
ReDim inData(DataByteLen - 1)
Array.Copy(tcpSyncClBuffer, StartByte, inData, 0, inData.Length)
Return True
Catch ex As Exception
ReadSyncData = False
CallException(write_data(7), write_data(7), ErrorNum.excReadFail)
End Try
Else
ReadSyncData = False ‘’程序老是跳到这里来
CallException(write_data(7), write_data(7), ErrorNum.excConErr)
End If
If (tcpAsyCl IsNot Nothing) And (tcpAsyCl.Connected) Then Try
ReDim tcpSyncClBuffer(ReadByteLen - 1)
tcpAsyCl.Receive(tcpSyncClBuffer, tcpSyncClBuffer.Length, SocketFlags.None)
ReDim inData(DataByteLen - 1)
Array.Copy(tcpSyncClBuffer, StartByte, inData, 0, inData.Length)
Return True
Catch ex As Exception
ReadSyncData = False
CallException(write_data(7), write_data(7), ErrorNum.excReadFail)
End Try
Else
ReadSyncData = False ‘’程序老是跳到这里来
CallException(write_data(7), write_data(7), ErrorNum.excConErr)
End If
另外这是vb.net的代码,因为关于vb.net的modbus tcp/ip的资料比较少,是从C#代码上改过来的,其实我要的功能很简单,我给下位机发送个请求,下位机给我返回相应的数据。
我看你回答过很多socket网络编程的帖子,能不能简单给介绍下,或给点相关资料,现在的代码虽然能实现功能,但总感觉不专业,不是那回事