编写Socket客户端和服务器程序,客户端读取本地文件的数据,发送到服务器,服务器接收并存储到文件中。 javasocket数据 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 就是你把收到的消息丢进byte数组里,头8位读出来是一个long,代表消息的长度。下一位是文件名的长度,byte型。然后在读出上一步读的byte这么长的位数,这就是文件名,后面的依此类推 len 8 整个消息长度,不包括这4个字节,类型为long=====================================================首先 后面写的不包括这4个字节 而长度为8字节 是否笔误? 我当做8字节讲你的整个消息是这样的:消息长度 文件名长度 文件名 文件数据长度 文件数据 mac码读取时按字节读取 头8个字节是总消息的长度(不包括这8个字节)第9个字节是文件名的长度,假设为x字节从第10个字节开始的x个字节就是文件名从(10+x)个字节开始的8个字节就是文件数据的长度,假设为y字节从第(10+x+8)个字节开始的y个字节就是文件数据从第(10+x+8+y)个字节开始的8个字节就是消息mac码这样消息就读完了正常的话 这时候从第9个字节到mac码结束的总长度应该是等于消息长度的,可以做个校验, 接收到这个长度的字节数后就不再接受本条消息的后续字节(如果有的话)了 是不是应该是这样的,本地文件保存的应该光指上面消息中的data,服务器通过解析这个data以及获取客户端的信息,得出这样的消息格式的数据,存储到文件中。 你看我说的这个对吗?是不是应该是这样的,本地文件保存的应该光指上面消息中的data,服务器通过解析这个data以及获取客户端的信息,得出这样的消息格式的数据,存储到文件中。谢谢你了! 你看我说的这个对吗?是不是应该是这样的,本地文件保存的应该光指上面消息中的data,服务器通过解析这个data以及获取客户端的信息,得出这样的消息格式的数据,存储到文件中。谢谢你了!本地文件保存的应该只是data, 客户端应该先读取本地文件并包装成指定的消息格式,然后传给服务器 是不是应该是这样的,本地文件保存的应该光指上面消息中的data,服务器通过解析这个data以及获取客户端的信息,得出这样的消息格式的数据,存储到文件中。客户端按照这个协议(格式)把数据发给你,你按照这个协议解析数据,把文件数据读出来写进文件,把文件名数据读出来给文件命个名,就这么简单 think in java 第四版错误 ThreadLocal 为何要定义成 final ? ? ? 急!!思路不是很清晰,不知如何写 调了一个下午还不对....闷..... JCreator的使用 if(U are a SUPERMAN){ Please Enter; } 那有好一点的 java 电子书 ??? 求高手点拨一个“方法中的异常”处理方法... 请教高人:为什么会出现:virtuallab.java:15: cannot resolve symbol等等 Image 的串行化? JAVA虚拟机 arrayList添加类
=====================================================
首先 后面写的不包括这4个字节 而长度为8字节 是否笔误? 我当做8字节讲
你的整个消息是这样的:
消息长度 文件名长度 文件名 文件数据长度 文件数据 mac码读取时按字节读取 头8个字节是总消息的长度(不包括这8个字节)
第9个字节是文件名的长度,假设为x字节
从第10个字节开始的x个字节就是文件名
从(10+x)个字节开始的8个字节就是文件数据的长度,假设为y字节
从第(10+x+8)个字节开始的y个字节就是文件数据
从第(10+x+8+y)个字节开始的8个字节就是消息mac码
这样消息就读完了
正常的话 这时候从第9个字节到mac码结束的总长度应该是等于消息长度的,可以做个校验, 接收到这个长度的字节数后就不再接受本条消息的后续字节(如果有的话)了
本地文件保存的应该只是data, 客户端应该先读取本地文件并包装成指定的消息格式,然后传给服务器