浏览 2075 次
锁定老帖子 主题:关于java UDP通讯 分包
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2013-01-23
1、为什么UPD通讯一般才用16进制;——解决乱码? 2、当数据大于512byte时,如何分包呀;——用读取流的方式吗,最好能给出示例代码,谢了! 数据我本打算都有用String形式,但是后来看贴子有人说,String转byte后,再转String有出错,先转成16进制就没有出错了。 第二个,分包问题,在INTERNET上路由的包一般为520byte,去掉8byte的包头,还有512byte,如何将超过512byte的String拆分成多个512大小的byte,不敢下手了,项目都停了有半个月了……急啊! 各位高手,小鸟先谢了! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2013-01-25
基本core java没学过?
|
|
返回顶楼 | |
发表时间:2013-01-29
String转换成byte是不会有问题的,问题出现在没有限定字符集,
String.getByte() 方法采用的当前服务器系统的默认字符集,同理,new String(byte[])也是一样的,如果服务端与客户端的默认字符集不一致,肯定会导致String出现乱码的情况. 将String转换为byte组之后,进行切分时很容易的。 另外也不能简单的将取512长度,出现这种情况可能是需要进行数据封装的,例如分包的数据顺序(UDP请求无序),还有是否已经包含完成的数据等等. |
|
返回顶楼 | |