1、服务器增加逻辑:ChatFileServer 接收文件的另一套逻辑,虽然独立出来了,也可以和接收聊天信息的逻辑合并
2、客户端增加逻辑:ChatListActivity 在原有单聊,群聊的基用疣黄门础上增加上传文件。public class ChatList帆歌达缒Activity extends AppCompatActivity implements View.OnClickListener { private LinearLayout friend_ly, group_ly, file_ly; //自己在手机根目录放置一个文件
3、ChatAppliaction.chatServer.sendFileMessage(filePath); break; } } }ChatFil髫潋啜缅eServer 增加上传文件服务逻辑,上传文件的逻辑不能像服务器端代码一样和聊天逻辑合并。
4、客户端互传文件建议采用UDP协议,实施点对点数据传输,这样就不需要改动服务器端,如果基于tcp协议传文件,则需要将文件上传至服务器,好友再去服务器下载文件,这样增大了服务器的负荷、占用了服务器空间。
5、具体实现过程:建立SocketServer,等待客户端的连接。当有客户端连接的时候,按照双方的约定,这时要读取一行数据。
6、其中保存客户端要发送的文件名和文件大小信息。根据文件名在本地创建文件,并建立好流通信。
7、循环接收数据包,将数据包写入文件。当接收数据的长度等于提前文件发过来的文件长度,即表示文件接收完毕,关闭文件。文件接收工作结束。