84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
光阴似箭催人老,日月如移越少年。
你处理TCP粘包问题了吗?既然是TCP就不得不考虑粘包的问题。粘包问题不解决的话,你没办法确定哪些字节才是一个包的开头4个字节。
粘包
简言之就是,你收到一大堆字节,然后这些字节的来源可能如下:
两三个包的所有字节一起发过来
前一个包的后半部分和后一个包的前半部分字节一起发过来
总之,就是半包或者粘包的混合
我们用的是netty,tcp粘包的问题,这里有一个很好阐述和基于netty的解决方案:https://my.oschina.net/andylu...
netty
不抓包在直接在java里面input流读出来是什么?
这属于socket通信包头问题,我之前的项目是这么处理的,代码段如下:
send(String url, int port, String content){ Socket socket = null; OutputStream out = null; DataOutputStream dataOutputStream = null; try { socket = new Socket(url, port); out = socket.getOutputStream(); dataOutputStream = new DataOutputStream(out); dataOutputStream.writeInt(content.getBytes().length); dataOutputStream.write(content.getBytes()); dataOutputStream.flush(); ... } }
建议写一个接收socket来Debug调试,抓包工具没用过.或者和对方联调,对方能收到并成功解析就OK了,不需要在抓包上钻牛角尖.希望能帮到你~
调用flush了没?
你处理TCP粘包问题了吗?
既然是TCP就不得不考虑
粘包
的问题。粘包
问题不解决的话,你没办法确定哪些字节才是一个包的开头4个字节。简言之就是,你收到一大堆字节,然后这些字节的来源可能如下:
两三个包的所有字节一起发过来
前一个包的后半部分和后一个包的前半部分字节一起发过来
总之,就是半包或者粘包的混合
我们用的是
netty
,tcp粘包的问题,这里有一个很好阐述和基于netty
的解决方案:https://my.oschina.net/andylu...不抓包在直接在java里面input流读出来是什么?
这属于socket通信包头问题,我之前的项目是这么处理的,代码段如下:
建议写一个接收socket来Debug调试,抓包工具没用过.或者和对方联调,对方能收到并成功解析就OK了,不需要在抓包上钻牛角尖.
希望能帮到你~
调用flush了没?