3 / 10
3
总体设计需要参照设计要求去设计。
.txt
.doc
.jpg
.exe
.mp3
Socket 实现通信自不必说,而文件的传输归根结底是文件的读、写。文件的
读写涉及到文件的属性:文件的名称(含扩展名,所在路径名)、文件大小、文
件内容信息。
核心有
:
(1)读取文件的前提是知道文件的路径。文件的名称+文件所在的路径即为
文件的绝对路径。而存储文件的时候也需要同发送文件名字相同存储,亦需要知
道接收文件的路径。
(2)发送、接收的过程都要涉及读取、接收累计字节的多少和文件大小比
较,这也是验证文件是否读取完毕或者接收完毕的方法。
(3)文件内容信息,即整个文件长度的字节数,可以循环读文件到 buffer、
写文件到 buffer,最后写入磁盘路径来完成写入。
文件的传输考虑到可靠传输,可以通过 TCP 套接字来实现。
发送字符消息,可以采取一端等待接收、一端发送消息的 UDP 套接字来实现。
考虑到能直观显示指定发送源文件夹 sourcefile,接收目标文件夹 destfile 里的内容。我
们考虑采用 listCtrl 列表框通过图标+文件名称+扩展名的形式显示文件。且可以关联
的操作。
考虑到对接收到文件的直观显示,对于图片的显示,我们借鉴设计了缓存模式和存盘模
式。缓存模式将接收到的文件显示在我们设定的区域。而对于硬盘模式,文件存储在对应磁
盘的 destfile 文件夹下,同时在接收端的 listctrl 列表框会有对应图标显示。仅图片可以缓存
模式显示,所有类型的文件都可以通过硬盘模式存储和直观显示。
考虑到支持不同机器收发,我们设计了可配置的 IP 地址和端口号的模式。方便操作和
实现。