我写了一个java 服务端。从一个客户端传输1,0,1 到另外一个客户端一秒30次。server 端打印出来次数是对的。但是到另外一个客户端的时候发现发生粘包。次数也明显少了。求大侠帮忙。。
直接用对象流吧,把字符串对象发送。
发送的是字符串。google现在已经不好用了。。。
你所谓的粘包是神马东西?读取长度问题?
你的传输没有长度规定的吗?
那至少得做成包头包体的数据包吧不知道你传送的数据要求多长的,比较简单的情况下,假设你只传送int的话,不需要去转字符串
发送到时候,直接write(int),读取的时候如果是按照byte[]形式读取的话,每次就读取4byte
记得objectinpustream有readInt()
至于TCP数据包做法,GOOGLE吧,一句二句说不清楚发送频率不算高呀,你直接发送字符串???
建议将用对象流,最好把要发送的东西封装在一个对象中,并序列化后发送。
发送的是字符串发送次数有点快。
这样的话,最好用异步接收的方式null项目结束了。。。问题也解决了。字符串就按字节来呗
比如定长8字节表示一个数据
发送的时候以8字节为单位发送,接收到时候同样以8字节接收,数字可以左补0
比如需要发送三个数字 4,15,200
发送到时候应该是 000000040000001500000200
读取的时候8字节读一次
觉得这个可以试试
能给个例子么? 谢谢