问题描述
例如发送了三条信息111111111111122222222222223333333333333接收的时候会不会出现111111111111122222222222223333333333333连接在一个字符串了还有丢包的问题是不是会出现11111111111113333333333333中间的2部分丢了又或者是1里面取了部分111,2里面又取了部分222,3里面有获取了部分333变成了111222333的问题了啊
解决方案
解决方案二:
定义好包头包尾进行合包判断处理啊
解决方案三:
会不会出现111111111111122222222222223333333333333连接在一个字符串会。是不是会出现11111111111113333333333333中间的2部分丢了不会。...变成了111222333的问题不会。
解决方案四:
引用2楼Forty2的回复:
会不会出现111111111111122222222222223333333333333连接在一个字符串会。是不是会出现11111111111113333333333333中间的2部分丢了不会。...变成了111222333的问题不会。
那这种111111111111122222222222223333333333333的问题要怎么获取长度再获取值呢
解决方案五:
引用1楼SomethingJack的回复:
定义好包头包尾进行合包判断处理啊
比如定义头是BEGIN。尾是END。这样的类似字符吗
解决方案六:
前提是你要使用tcp
解决方案七:
1.使用TCP/IP协议的话,是绝对不会有丢包的问题的。2.在接收端,接到的全是Bytes,跟发送端发送几次没有关系,如何解析,是你自己要做的事。一般情况下,你需要对你的消息有一个定义,比如,前多少个byte表示一些信息,记录一下消息的长度等。接收的时候先接收前多少个字节,解析一下,然后再接收具体的消息内容。
解决方案八:
最多只会接收不全,就是没接收完成,可以统一定义一个int64放在最前面,用来识别总发送长度
解决方案九:
引用6楼ShelleyLiu0415的回复:
1.使用TCP/IP协议的话,是绝对不会有丢包的问题的。2.在接收端,接到的全是Bytes,跟发送端发送几次没有关系,如何解析,是你自己要做的事。一般情况下,你需要对你的消息有一个定义,比如,前多少个byte表示一些信息,记录一下消息的长度等。接收的时候先接收前多少个字节,解析一下,然后再接收具体的消息内容。
明白了,目前定义的是000006ABCDEF。前面6位是长度要取的字符长度。而字符就是ABCDEF。先取前面6位得到长度,根据长度取后面的字符数据