netty服务器,大数据量时,接收数据异常。

皓月当空2 发布于 2016/12/15 20:24
阅读 1K+
收藏 0

netty服务器端接收数据量过大时,数据接收异常?

这是客户端程序发送的字节数:1000多字节

68 20 67 21 15 61 54 68 03 00 24 32 32 32 33 33 33 33 3C 37 34 32 36 33 33 6B 63 69 63 69 64 63 65 69 63 65 63 63 63 65 63 63 63 75 63 6A 63 64 63 60 83 83 74 66 65 8C 7A 64 73 33 CF BF 33 95 4F 71 73 6B 38 72 73 33 33 E5 46 D5 F3 BF 33 33 4F C0 36 15 4F 71 73 95 33 72 73 33 33 E5 46 39 FA E4 46 3F 2F E5 46 29 F9 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 34 3A 3E 33 32 34 34 39 34 39 33 33 89 63 66 65 33 33 33 74 63 64 33 33 74 63 63 64 33 63 61 64 33 63 61 65 33 37 33 33 37 33 65 60 64 64 86 63 66 6A 7F 76 6B 63 61 69 63 61 69 64 63 65 63 61 64 89 6A 63 63 65 60 68 67 69 87 62 7F 77 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 69 61 63 89 60 A5 98 89 A7 99 A2 86 33 33 33 33 33 6A 64 61 6A 63 61 68 64 63 65 53 75 76 83 61 63 63 75 80 65 76 65 89 60 64 64 86 33 33 33 33 33 33 33 33 6B 63 69 63 69 64 63 65 69 63 64 63 64 63 79 79 63 63 75 63 6A 63 64 63 52 47 52 75 91 3A 72 C3 3F 33 82 53 51 75 85 3A 73 4B B5 81 95 4F 52 75 7D 3A B2 23 42 33 73 4B F5 82 B9 54 36 57 A2 B5 58 57 72 6F C2 33 97 4F 12 86 3D 33 32 C3 36 33 3D 33 35 5B C2 91 39 33 32 C3 3D 33 3D 33 36 5F C5 06 73 3A 61 6F E5 23 2F 32 73 3A C5 F6 8D 3A C5 F6 8F 3A E5 F3 43 33 73 3A E5 23 B1 32 E3 34 73 4B 05 06 8E 5C 02 76 3D 33 4E 6F C2 33 97 4F 12 86 3D 33 22 C6 3D 33 35 5B C2 91 35 33 32 C3 3C 33 3D 33 36 5F C5 06 73 3A 3E 6F D5 F6 73 3A 25 05 35 35 B5 76 7D 3A E5 03 36 33 73 3A 02 76 3D 33 51 49 33 46 92 47 52 75 C1 3F 13 42 79 6F 78 6F 77 6F 38 6F 75 6F 74 6F 4B 6F 6D 6F 71 6F BD 33 DF 54 0D 86 37 33 1D C5 35 33 35 5F 0D 86 35 33 FD C6 38 33 66 67 1D C5 35 33 36 5F E5 73 5F 8D 8F 34 E4 F3 03 33 4B 33 5C 6F BD 33 DF 54 CD 86 33 33 1D C6 38 33 39 53 61 7D B1 E3 42 33 35 53 E5 46 A5 F7 61 7D B1 E3 3A 33 35 53 E5 46 61 C6 1D C5 35 33 36 5F E5 73 5F 8D 8F 34 61 7D 81 C6 40 53 1D C6 38 33 3D 53 E5 46 3B BA 36 76 39 6F 73 4B 05 86 E2 54 36 76 34 6F 36 76 8D 49 33 46 72 47 C5 E6 0F 38 36 5B 5F 76 E5 46 CD A2 6F 49 33 46 72 47 C5 E6 2F 38 36 5B 5F 76 E5 46 75 A1 6F 49 33 46 72 47 C5 E6 4F 39 36 5B 5F 76 E5 46 21 A1 6F 49 33 46 72 47 C5 E6 6F 39 36 5B 5F 76 E5 46 C9 A0 6F 49 33 46 F2 47 64 B3 4B 33 B4 76 37 33 B4 76 39 33 B9 33 FB 4F E5 E3 73 33 3D 3B 37 5F E3 46 57 00 B3 33 FD FF C2 33 F5 4F D2 75 9D 3B 33 33 E5 F3 73 33 3D 3B D2 75 99 3B 35 33 E5 F3 53 33 3D 3B D2 75 95 3B 37 33 E5 F3 43 33 3D 3B BA 33 B3 50 EA C3 B3 33 E5 33 35 5F E3 46 AB 00 EA C3 B3 33 D1 34 35 5F E3 46 93 00 EA C3 B3 33 BD 35 35 5F E3 46 7B 00 E3 46 63 00 FE 3A B4 76 35 33 33 4B 24 73 71 51 47 33 A4 42 43 33 A4 39 3F 33 33 4B 24 73 3D 4C 3B 33 72 34 43 33 5B 82 42 7B 72 83 4A AC 72 C3 62 25 38 5B FE C6 07 33 35 57 2E 86 07 33 40 7B FF 3E DF 33 4B 33 E5 46 15 6E E7 16

而服务器端(用netty实现):接收时分几次收,而且收到的数据有很多重复,几次接收到的字节数远远大于我发送数据。打印日志如下:

第一次接收:length: 1024
68 20 67 21 15 61 54 68 03 00 24 32 32 32 33 33 33 33 3C 37 34 32 36 33 33 6B 63 69 63 69 64 63 65 69 63 65 63 63 63 65 63 63 63 75 63 6A 63 64 63 60 83 83 74 66 65 8C 7A 64 73 33 CF BF 33 95 4F 71 73 6B 38 72 73 33 33 E5 46 D5 F3 BF 33 33 4F C0 36 15 4F 71 73 95 33 72 73 33 33 E5 46 39 FA E4 46 3F 2F E5 46 29 F9 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 34 3A 3E 33 32 34 34 39 34 39 33 33 89 63 66 65 33 33 33 74 63 64 33 33 74 63 63 64 33 63 61 64 33 63 61 65 33 37 33 33 37 33 65 60 64 64 86 63 66 6A 7F 76 6B 63 61 69 63 61 69 64 63 65 63 61 64 89 6A 63 63 65 60 68 67 69 87 62 7F 77 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 69 61 63 89 60 A5 98 89 A7 99 A2 86 33 33 33 33 33 6A 64 61 6A 63 61 68 64 63 65 53 75 76 83 61 63 63 75 80 65 76 65 89 60 64 64 86 33 33 33 33 33 33 33 33 6B 63 69 63 69 64 63 65 69 63 64 63 64 63 79 79 63 63 75 63 6A 63 64 63 52 47 52 75 91 3A 72 C3 3F 33 82 53 51 75 85 3A 73 4B B5 81 95 4F 52 75 7D 3A B2 23 42 33 73 4B F5 82 B9 54 36 57 A2 B5 58 57 72 6F C2 33 97 4F 12 86 3D 33 32 C3 36 33 3D 33 35 5B C2 91 39 33 32 C3 3D 33 3D 33 36 5F C5 06 73 3A 61 6F E5 23 2F 32 73 3A C5 F6 8D 3A C5 F6 8F 3A E5 F3 43 33 73 3A E5 23 B1 32 E3 34 73 4B 05 06 8E 5C 02 76 3D 33 4E 6F C2 33 97 4F 12 86 3D 33 22 C6 3D 33 35 5B C2 91 35 33 32 C3 3C 33 3D 33 36 5F C5 06 73 3A 3E 6F D5 F6 73 3A 25 05 35 35 B5 76 7D 3A E5 03 36 33 73 3A 02 76 3D 33 51 49 33 46 92 47 52 75 C1 3F 13 42 79 6F 78 6F 77 6F 38 6F 75 6F 74 6F 4B 6F 6D 6F 71 6F BD 33 DF 54 0D 86 37 33 1D C5 35 33 35 5F 0D 86 35 33 FD C6 38 33 66 67 1D C5 35 33 36 5F E5 73 5F 8D 8F 34 E4 F3 03 33 4B 33 5C 6F BD 33 DF 54 CD 86 33 33 1D C6 38 33 39 53 61 7D B1 E3 42 33 35 53 E5 46 A5 F7 61 7D B1 E3 3A 33 35 53 E5 46 61 C6 1D C5 35 33 36 5F E5 73 5F 8D 8F 34 61 7D 81 C6 40 53 1D C6 38 33 3D 53 E5 46 3B BA 36 76 39 6F 73 4B 05 86 E2 54 36 76 34 6F 36 76 8D 49 33 46 72 47 C5 E6 0F 38 36 5B 5F 76 E5 46 CD A2 6F 49 33 46 72 47 C5 E6 2F 38 36 5B 5F 76 E5 46 75 A1 6F 49 33 46 72 47 C5 E6 4F 39 36 5B 5F 76 E5 46 21 A1 6F 49 33 46 72 47 C5 E6 6F 39 36 5B 5F 76 E5 46 C9 A0 6F 49 33 46 F2 47 64 B3 4B 33 B4 76 37 33 B4 76 39 33 B9 33 FB 4F E5 E3 73 33 3D 3B 37 5F E3 46 57 00 B3 33 FD FF C2 33 F5 4F D2 75 9D 3B 33 33 E5 F3 73 33 3D 3B D2 75 99 3B 35 33 E5 F3 53 33 3D 3B D2 75 95 3B 37 33 E5 F3 43 33 3D 3B BA 33 B3 50 EA C3 B3 33 E5 33 35 5F E3 46 AB 00 EA C3 B3 33 D1 34 35 5F E3 46 93 00 EA C3 B3 33 BD 35 35 5F E3 46 7B 00 E3 46 63 00 FE 3A B4 76 35 33 33 4B 24 73 71 51 47 33 A4 42 43 33 A4 39 3F 33 33 4B 24 73 3D 4C 3B 33 72 34 43 33 5B 82 42 7B 72 83 4A AC 72 C3 62 25 38 5B 03
第二次接收:length: 1024
65 63 61 64 89 6A 63 63 65 60 68 67 69 87 62 7F 77 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 69 61 63 89 60 A5 98 89 A7 99 A2 86 33 33 33 33 33 6A 64 61 6A 63 61 68 64 63 65 53 75 76 83 61 63 63 75 80 65 76 65 89 60 64 64 86 33 33 33 33 33 33 33 33 6B 63 69 63 69 64 63 65 69 63 64 63 64 63 79 79 63 63 75 63 6A 63 64 63 52 47 52 75 91 3A 72 C3 3F 33 82 53 51 75 85 3A 73 4B B5 81 95 4F 52 75 7D 3A B2 23 42 33 73 4B F5 82 B9 54 36 57 A2 B5 58 57 72 6F C2 33 97 4F 12 86 3D 33 32 C3 36 33 3D 33 35 5B C2 91 39 33 32 C3 3D 33 3D 33 36 5F C5 06 73 3A 61 6F E5 23 2F 32 73 3A C5 F6 8D 3A C5 F6 8F 3A E5 F3 43 33 73 3A E5 23 B1 32 E3 34 73 4B 05 06 8E 5C 02 76 3D 33 4E 6F C2 33 97 4F 12 86 3D 33 22 C6 3D 33 35 5B C2 91 35 33 32 C3 3C 33 3D 33 36 5F C5 06 73 3A 3E 6F D5 F6 73 3A 25 05 35 35 B5 76 7D 3A E5 03 36 33 73 3A 02 76 3D 33 51 49 33 46 92 47 52 75 C1 3F 13 42 79 6F 78 6F 77 6F 38 6F 75 6F 74 6F 4B 6F 6D 6F 71 6F BD 33 DF 54 0D 86 37 33 1D C5 35 33 35 5F 0D 86 35 33 FD C6 38 33 66 67 1D C5 35 33 36 5F E5 73 5F 8D 8F 34 E4 F3 03 33 4B 33 5C 6F BD 33 DF 54 CD 86 33 33 1D C6 38 33 39 53 61 7D B1 E3 42 33 35 53 E5 46 A5 F7 61 7D B1 E3 3A 33 35 53 E5 46 61 C6 1D C5 35 33 36 5F E5 73 5F 8D 8F 34 61 7D 81 C6 40 53 1D C6 38 33 3D 53 E5 46 3B BA 36 76 39 6F 73 4B 05 86 E2 54 36 76 34 6F 36 76 8D 49 33 46 72 47 C5 E6 0F 38 36 5B 5F 76 E5 46 CD A2 6F 49 33 46 72 47 C5 E6 2F 38 36 5B 5F 76 E5 46 75 A1 6F 49 33 46 72 47 C5 E6 4F 39 36 5B 5F 76 E5 46 21 A1 6F 49 33 46 72 47 C5 E6 6F 39 36 5B 5F 76 E5 46 C9 A0 6F 49 33 46 F2 47 64 B3 4B 33 B4 76 37 33 B4 76 39 33 B9 33 FB 4F E5 E3 73 33 3D 3B 37 5F E3 46 57 00 B3 33 FD FF C2 33 F5 4F D2 75 9D 3B 33 33 E5 F3 73 33 3D 3B D2 75 99 3B 35 33 E5 F3 53 33 3D 3B D2 75 95 3B 37 33 E5 F3 43 33 3D 3B BA 33 B3 50 EA C3 B3 33 E5 33 35 5F E3 46 AB 00 EA C3 B3 33 D1 34 35 5F E3 46 93 00 EA C3 B3 33 BD 35 35 5F E3 46 7B 00 E3 46 63 00 FE 3A B4 76 35 33 33 4B 24 73 71 51 47 33 A4 42 43 33 A4 39 3F 33 33 4B 24 73 3D 4C 3B 33 72 34 43 33 5B 82 42 7B 72 83 4A AC 72 C3 62 25 38 5B FE C6 07 33 35 57 2E 86 07 33 40 7B FF 3E DF 33 4B 33 E5 46 15 6E E7 16 36 5F E5 73 5F 8D 8F 34 E4 F3 03 33 4B 33 5C 6F BD 33 DF 54 CD 86 33 33 1D C6 38 33 39 53 61 7D B1 E3 42 33 35 53 E5 46 A5 F7 61 7D B1 E3 3A 33 35 53 E5 46 61 C6 1D C5 35 33 36 5F E5 73 5F 8D 8F 34 61 7D 81 C6 40 53 1D C6 38 33 3D 53 E5 46 3B BA 36 76 39 6F 73 4B 05 86 E2 54 36 76 34 6F 36 76 8D 49 33 46 72 47 C5 E6 0F 38 36 5B 5F 76 E5 46 CD A2 6F 49 33 46 72 47 C5 E6 2F 38 36 5B 5F 76 E5 46 75 A1 6F 49 33 46 72 47 C5 E6 4F 39 36 5B 5F 76 E5 46 21 A1 6F 49 33 46 72 47 C5 E6 6F 39 36 5B 5F 76 E5 46 C9 A0 6F 49 33 46 F2 47 64 B3 4B 33 B4 76 37 33 B4 76 39 33 B9 33 FB 4F E5 E3 73 33 3D 3B 37 5F E3 46 57 00 B3 33 FD FF C2 33 F5 4F D2 75 9D 3B 33 33 E5 F3 73 33 3D 3B D2 75 99 3B 35 33 E5 F3 53 33 3D 3B D2 75 95 3B 37 33 E5 F3 43 33 3D 3B BA 33 B3 50 EA C3 B3 33 E5 33 35 5F E3 46 AB 00 EA C3 B3 33 D1 34 35 5F E3 46 93 00 EA C3 B3 33 BD 35 35 5F E3 46 7B 00 E3 46 63 00 FE 3A B4 76 35 33 33 4B 24 73 71 51 47 33 A4 42 43 33 A4 39 3F 33 33 4B 24 73 3D
第三次接收,length: 68
4C 3B 33 72 34 43 33 5B 82 42 7B 72 83 4A AC 72 C3 62 25 38 5B FE C6 07 33 35 57 2E 86 07 33 40 7B FF 3E DF 33 4B 33 E5 46 15 6E E7 16 C6 07 33 35 57 2E 86 07 33 40 7B FF 3E DF 33 4B 33 E5 46 15 6E E7 16


加载中
0
数组斯诺
数组斯诺
tcp吗?是否考虑了tcp粘包和拆包的情况?
0
ksfzhaohui
ksfzhaohui
看看协议怎么定义的那
0
jack_l
jack_l
粘包了吧,Netty自带粘包解码器,总有一款适合你
0
俊少
俊少
这明明是拆包了
0
kakai
kakai
服务器和客户端接收数据那里都要进行粘包断包解码的
0
皓月当空2
是的。这是在decoder中接收的原始数据,主要是和发生的数据对不上,如果是正常的拆包、或者粘包那没问题,可问题是接收的字节多出了许多,
kakai
kakai
我在游戏中做语音聊天时,都是用的自定义通信协议,一段语言就几百K了,从来没出现过你说的问题。
kakai
kakai
我觉得应该还是你的解码器那块有问题,你在处理粘包拆包的时候没有把已读字节清除干净,可能是你read***字节数据后,用了markReaderIndex()和resetReaderIndex(),但是resetReaderIndex()的时候定位不正确。
0
c
cep

什么也没说明白,让大家猜呢


0
uni7corn
uni7corn

可以在协议上,加入固定的byte位置,是包头 包长度 指令编码 数据长度 数据集 校验和 包尾 ,然后效验发送过来的数据在固定的byte位置上信息。如果包头,包长度,指令编码,包尾 啥的不一致,那么应该是发生粘包和断包或者拆包了。然后进入重发机制。。每一个指令都应该有响应数据报文。。。告诉对方接收成功还是失败。

0
乌龟壳
乌龟壳

做tcp协议解析端有一个思路上的诀窍就是——当对方是一个字节一个字节这样分别发过来的。

只要你用这种思路去做,根本没什么黏包拆包什么事了,一条思路能走到底。

0
cys1357
cys1357
可能是decode写的不对,decoe必须能从数据流中提取出有效帧,并将无效数据过滤掉,如果协议是国标部标一般设计的比较完善,只需要考虑你的实现是否实现了协议的规范,如果是自己定的协议则需要考虑协议本身是否合理
返回顶部
顶部