socket 的Send和 Receive
我在发生数据时候 用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);//接收数据
代码如下:
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);//接收数据
...全文
相关推荐
Socket Send and Receive
收发数据是网络编程的主题,在套接字上收发数据我们可以使用send和recv,当然还有Winsock2的WSASend和WSARecv。我们这里只讨论send和recv。
tcp收发程序(C#)
This example shows how to send and receive data via TCP/IP using Socket in .NET Framework. There are methods Socket.Send and Socket.Receive
C# Socket 示例 Tcp
C# Socket 示例 Tcp
一对一socket通信
用MFC界面做的可以实现简单的一对一socket通信
socket编程实例
很不错的socket基础教程,看一遍包你学会套接字编程



