请教关于socket服务端接收数据不全的问题

tj_libo 2024-10-23 11:50:49

请教一下,目前在做一个HSMS协议通讯,我是服务端,在接收客户端发来的数据时,经常总是先接收到前2个字节或前4-6个字节,比如00,0000,00000A,总是出现这样的情况,给解析带来很大困扰,

有什么方式可以判断或等待接收到全部数据再进行下一步操作呢?

接收的字节长度不固定。

一般接收内容为:

SEND S6F202:S6F202 W [D=0] [len=99] [SB=11]
                    <L,3
                        <A,40 '44-9744109A1149L04BGMNBA1E128D          ' [PNLID]>
                        <A,1 'G' [RESULT]>
                        <A,40 '                                        ' [TXT]>
                    >
其中len=99  这个是字节长度,但是不固定。

...全文
186 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
兔子-顾问 2024-11-13
  • 打赏
  • 举报
回复

socket是一种流设备,你需要不停的读取进行缓存,并且在缓存中检索找到完整的包,然后才说分析。你如果只收到几个字节,说明后续的还在发送中。

111,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧