请教一下 客户端例如我这样发送了一组数据
string str = "123123"; byte[] by = Encoding.UTF8.GetBytes(str);
Cilentsocket.Send(by);
Debug.Log("发送成功");
服务端我用 SocketAsyncEventArgs异步接受数据
//收到数据后SocketAsyncEventArgs private void AcceptData_Completed(object sender, SocketAsyncEventArgs e)
{
byte[] tempBytes = e.Buffer; string str = Encoding.UTF8.GetString(tempBytes,0,e.BytesTransferred);//str 不能够正常解析出来 Console.WriteLine("获取了数据"+ str);
}用 e.BytesTransferred的属性能够获取客户端发送过来的字节数,但是不知道怎样才能把数据解析出来
string str = "123123"; byte[] by = Encoding.UTF8.GetBytes(str);
Cilentsocket.Send(by);
Debug.Log("发送成功");
服务端我用 SocketAsyncEventArgs异步接受数据
//收到数据后SocketAsyncEventArgs private void AcceptData_Completed(object sender, SocketAsyncEventArgs e)
{
byte[] tempBytes = e.Buffer; string str = Encoding.UTF8.GetString(tempBytes,0,e.BytesTransferred);//str 不能够正常解析出来 Console.WriteLine("获取了数据"+ str);
}用 e.BytesTransferred的属性能够获取客户端发送过来的字节数,但是不知道怎样才能把数据解析出来
很有可能第一次收到ab,第二次收到c。
所以接收和解析不分离,表现为偶尔正常,大部分不可用
常用做法是 报头+数据,报头中携带数据长度,接收足长数据才能解析