点击或拖拽改变大小

NetSupportReadBytesFromSocket 方法 (Socket, Int32)

读取socket数据的基础方法,只适合用来接收指令头,或是同步数据

命名空间:  HslCommunication.Core
程序集:  HslCommunication (在 HslCommunication.dll 中) 版本:8.2.1.0 (8.2.1.0)
语法
public static byte[] ReadBytesFromSocket(
	Socket socket,
	int receive
)

参数

socket
类型:System.Net.SocketsSocket
通信对象
receive
类型:SystemInt32
接收的长度

返回值

类型:Byte
接收到的字节数据
异常
异常条件
ArgumentNullException
SocketException
ObjectDisposedException
SecurityException
示例
接收数据的举例,简单的接收20个字节长度的数据。
ReadBytesFromSocket示例
// 创建socket
Socket socket = new Socket( AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp );
socket.Connect( IPAddress.Parse( "192.168.0.7" ), 1000 );

// 准备接收指定长度的数据,假设为20个长度
byte[] receive = NetSupport.ReadBytesFromSocket( socket, 20 );

// 根据需要选择是否关闭连接
socket.Close( );

// 接下来就可以对receive进行操作了
如何接收不定长度的数据呢?我们可以将一条数据拆分成2次接收,第一次是接收8个固定的字节,解析成长度,再接收真实的数据。
ReadBytesFromSocket示例
// 创建socket
Socket socket = new Socket( AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp );
socket.Connect( IPAddress.Parse( "192.168.0.7" ), 1000 );

// 准备接收指定长度的数据,假设为4个长度,然后输出进度
byte[] head = NetSupport.ReadBytesFromSocket( socket, 4);
int length = BitConverter.ToInt32( head, 0 );

byte[] content = NetSupport.ReadBytesFromSocket( socket, length );

// 根据需要选择是否关闭连接
socket.Close( );

// 接下来就可以对content进行操作了
参见