最近参与了一个项目,想把项目的核心通信逻辑整理后写成一篇博客。内容会比较长,代码还在整理中,因为对Socket不是非常熟练,欢迎大家前来拍砖。
要实现的主体内容如下。
一、需求:
客户端连接到服务器后,服务器主动推送需要下载的文件列表消息,客户端收到文件列表后,可以点击文件下载。
二、要点说明:
(1)TCP长连接实现服务器向客户端推送消息;
(2)服务器只是向所有建立连接的客户端推送文件下载地址,而不是直接发送文件数据;客户端发出文件下载请求后才进行文件数据传送;
(3)需要支持大文件传输。
三、系统功能分析:
服务器端功能
(1)启动、关闭监听服务;
(2)显示所有建立连接的客户端;
(3)选择需要发送的文件,显示文件列表;
(4)按一定的格式向建立连接的客户端发送文件列表消息。
客户端功能
(1)建立与服务器的连接;
(2)接收服务器发送的消息,解析出需要下载的文件列表;
(3)点击文件进行下载。