近期由于项目需要, 在 linux 下写了一个服务器与客户端之间进行文件的传输, 可以同时监听多个客户端, 与多个客户端进行传输。基本需求如下 :
1、服务端监听客户端, 当监听到客户端连接时,创建一个线程去完成后续处理工作从而实现同时连接多个客户端。
2、命令与数据分开传递,其中命令采用JSON格式。客户端可以通过命令查询指定目录的文件链表,可以指定需要传 输的文件, 当收到的是图片文件时,通过界面显示。
由于项目的特殊性, 这里只能列出部分功能
传输中定义的 Json 的格式如下 :
/* ----------------- 下发的消息 ----------------- */
获取文件链表
{
"MsgType": "Cmd",
"MsgID" : 0x0D,
}
同步指定文件
{
"MsgType" : "Cmd",
"MsgID" : 0x0E,
"FileName" : "/tmp/SD0/DCIM/140101100/001836AB.MP4"
}
/* ----------------- 接收的消息 ----------------- */
连接成功
{
"MsgType" : "ConnectInfo"
"CmdInfoArray" : [
{
"MsgValue" : "Success"
}
]
}
即将同步的文件信息
{
"MsgType" : "FileInfo",
"CmdInfoArray" : [
{
"FileName" : "/tmp/SD0/DCIM/140101100/00013100.JPG",
"FileSize" : 1457969
}
]
}
获取文件列表
{
"MsgType" : "FileListInfo"