C#如何使用Socket自定义TCP/IP报文收发数据?

小弟刚刚工作,第一个项目用到了Socket,但客户给的文档我没懂,文档截图如下:
图片说明
图片说明
图片说明
请问报文结构应该怎样设计?应该自定义结构体再通过Marshal对象转换成byte[]发送吗?那么用户名和密码的数据结构应该怎样设计呢?CRC16要怎样生成呢?

这种协议性的东东最好是去问客户,或者先按简单的结构体实现出来,再与客户进行联调。
联调是最直接的方法,CRC16的算法可以问客户要。否则,也只有联调时一起分析。否则,你想在再好,客户不是你想的那样实现的,你还是想改。

构成byte数组,然后发送
sockdet中都是byte结构