设计一个简单的聊天室程序。采用磴涡湿蟾客户/服务器模式,分为客户端程序和服务器端程序。由于服务器只能支持一个客户,实际上是一个点对点通信的程序。客户端程序和服务器程序通过网络埽跆翁崾交换聊天字符串内容,并在窗口的列表框中显示。同时,实现了文件传输系统。
方法/步骤
1、服务器增加逻辑:ChatFileServer接收文件的另一套逻辑,虽然独立出来了,也可以和接收聊天信息的逻辑合并
2、客户端增加逻辑:ChatListActivity在原有单聊,群聊的基用疣黄门础上增加上传文件。publicclassChatList帆歌达缒ActivityextendsAppCompatActivityimplementsView.OnClickListener{ privateLinearLayoutfriend_ly,group_ly,file_ly;//自己在手机根目录放置一个文件
3、ChatAppliaction.chat讵症慧鹱Server.sendFileMessage(filePath);break;}}}ChatFil髫潋啜缅eServer增加上传文件服务逻辑,上传文件的逻辑不能像服务器端代码一样和聊天逻辑合并。
4、客户端互传文件建议采用UDP协议,实施点对点数据传输,这样就不需要改动服务器端,如果基于tcp协议传文件,则需要将文件上传至服务器,好友再去服务器下载文件,这样增大了服务器的负荷、占用了服务器空间。
5、具体实现过程:建立SocketServer,等待客户端的连接。当有客户端连接的时候,按照双方的约定,这时要读取一行数据。
6、其中保存客户端要发送的文件名和文件大小信息。根据文件名在本地创建文件,并建立好流通信。
7、循环接收数据包,将数据包写入文件。当接收数据的长度等于提前文件发过来的文件长度,即表示文件接收完毕,关闭文件。文件接收工作结束。