如何快速学习:[1]Swift编程语言,Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Ojective-C*共同运行于MacOS和iOS平台,用于搭建基于苹果平台的应用程......
2023-03-17 321 编程语言
设计一个简单的聊天室程序。采用客户/服务器模式,分为客户端程序和服务器端程序。由于服务器只能支持一个客户,实际上是一个点对点通信的程序。客户端程序和服务器程序通过网络交换聊天字符串内容,并在窗口的列表框中显示。同时,实现了文件传输系统。
服务器增加逻辑:ChatFileServer 接收文件的另一套逻辑,虽然独立出来了,也可以和接收聊天信息的逻辑合并
客户端增加逻辑:ChatListActivity 在原有单聊,群聊的基础上增加上传文件。public class ChatListActivity extends AppCompatActivity implements View.OnClickListener { private LinearLayout friend_ly, group_ly, file_ly; //自己在手机根目录放置一个文件
ChatAppliaction.chatServer.sendFileMessage(filePath); break; } } }ChatFileServer 增加上传文件服务逻辑,上传文件的逻辑不能像服务器端代码一样和聊天逻辑合并。
客户端互传文件建议采用UDP协议,实施点对点数据传输,这样就不需要改动服务器端,如果基于tcp协议传文件,则需要将文件上传至服务器,好友再去服务器下载文件,这样增大了服务器的负荷、占用了服务器空间。
具体实现过程:建立SocketServer,等待客户端的连接。当有客户端连接的时候,按照双方的约定,这时要读取一行数据。
其中保存客户端要发送的文件名和文件大小信息。根据文件名在本地创建文件,并建立好流通信。
循环接收数据包,将数据包写入文件。当接收数据的长度等于提前文件发过来的文件长度,即表示文件接收完毕,关闭文件。文件接收工作结束。
以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!
相关文章
如何快速学习:[1]Swift编程语言,Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Ojective-C*共同运行于MacOS和iOS平台,用于搭建基于苹果平台的应用程......
2023-03-17 321 编程语言
web图表开发工具FineReport:[11]连续分组,数据库表数据是按照时间先后录入的,查询的时候希望按照时间先后,某个字段连续相同的话就合并起来显示,这样的报表可以通过相邻连续分组来实现。......
2023-03-17 545 编程语言