服务端程序用c++开发的,服务端在收到客户端请求后会发送如下结构给客户端:
typedef struct
{
char sMsgID[10+1];
int nErrorCode;
char sPhoneNo[21+1];
}SendBatchResp;客户端是用C#开发,而C#中socket收到的是字节流,请问客户端收到这个这个流式的结构后如何把它还原成一个结构。
typedef struct
{
char sMsgID[10+1];
int nErrorCode;
char sPhoneNo[21+1];
}SendBatchResp;客户端是用C#开发,而C#中socket收到的是字节流,请问客户端收到这个这个流式的结构后如何把它还原成一个结构。
接着4个字节是int
然后再22个字节是byte[22],估计同上假设收到了一个byte[37]名叫stream那么,将前11字节截取出来并作为string返回的方法是
string sMsgID = System.Text.Encoding.ASCII.GetString(stream, 0, 11);
// 注:可能多余的\0字符也包含在返回之中;如果要去掉他们,就
// sMsgID = sMsgID.TrimEnd('\0');然后获取中间的int
int nErrorCode = BitConverter.ToInt32(stream, 11);最后获取后面的22个字节
string sPhoneNo = System.Text.Encoding.ASCII.GetString(stream, 15, 22)
/* .TrimEnd('\0') */ ;