socket 的Send和 Receive
hky44 2012-11-09 06:04:27 我在发生数据时候 用List<ArraySegment<byte>> 传byte[] 把int,string转换的。 在服务端时候 读取 却是合并的 要指定位置分割来获取 可我在发送数据时候 根本据没法确定byte[]的大小 ,请教高手们有没什么方法解决
代码如下:
List<ArraySegment<byte>> byteList = new List<ArraySegment<byte>>();
System.ArraySegment<byte> bs = new ArraySegment<byte>(System.BitConverter.GetBytes(2));
byteList.Add(bs);
System.ArraySegment<byte> bs1 = new ArraySegment<byte>(Encoding.UTF8.GetBytes("aa"));
byteList.Add(bs);
int successSendBtyes = clientSocket.Send(byteList, SocketFlags.None); //发送数据
--------服务端读取------
List<ArraySegment<byte>> byteList = new List<ArraySegment<byte>>(2);
byte[] bigBuffer = new byte[1024];
byteList.Add(new ArraySegment<byte>(bigBuffer, 0, 1024));//这里需要位置和个数
byteList.Add(new ArraySegment<byte>(bigBuffer, 0, 1024));
int bytesReceived = clientSocket.Receive(byteList,SocketFlags.None);//接收数据