socket 协议 服务端发送有消息头的byte[]数组,客户端怎么接受byte[]数组?

qq_29775423 2016-06-22 08:30:24
java socket编程:
服务端发送消息的头部添加4个byte字节用来记录文件数据大小,后面的为文件数据,这些数据以byte[]数组传输给客户端。 客户端该怎么接受byte[]数组,怎么获取前4个字节的文件大小,怎么获取文件数据?能给出客户端与服务端的程序吗。帮帮忙,在线等
...全文
546 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
GxTryer 2016-06-27
  • 打赏
  • 举报
回复
前4字节表示长度。取4字节,客户端就知道要接收数据包的长度。然后你从缓存去这个长度就可以了。 随便网上都能找到例子。
zhangweihan01 2016-06-22
  • 打赏
  • 举报
回复
前提:我也是初学者,不知道能不 解决你的问题,看你提供的信息也不太清楚,根据我的理解写了下面代码,你看看吧 Socket socket = new Socket("", 0); InputStream is = socket.getInputStream(); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); String firstline = br.readLine(); byte[] line = firstline.getBytes(); byte[] data = new byte[4]; for(int i=0; i<data.length; i++) { data[i] = line[i]; } String s = new String(data); int size = Integer.parseInt(s); 剩下的数据信息再用个byte数组截取一下应该就能得到了

50,504

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧