1.从CSocket类派生两个子类:CServerSocket和CClientSocket.
声明一个CClientSocket*类套接字 m_pSendSocket用来发送数据
声明一个CServerSocket*类套接字 m_pServerSocket用来监听
一个CServerSocket*类套接字 m_ServerSocket用来接收数据
分别绑定好端口后,m_pServerSocket开始监听。
2.选择文件。
用CFileDialog类的GetPathName()函数获得选中文件的路径名
3.传送文件。
客户端发送connect()请求,服务器端的OnAccept()函数通知监听套接字关闭当前的接收套接字,并调用Accept()函数返回一个新的接收套接字接受连接。
客户端先发送文件信息:文件路径名和文件大小,再发送文件本身。
服务器端的OnReceive()函数通知套接字缓存中有数据,调用ReceiveData()函数。
在ReceiveData()函数中
若是第一次接收数据,应当调用Receive()函数先获取文件信息,用ReverseFind()得到文件名。再用SHBrowseForFolder(&bInfo)显示一个用于选择文件的对话框,记录目录信息并创建一个同名文件。
客户端的OnReceive()函数再调用SendFileData()发送文件。
服务器端接收文件,直接调用Receive()函数并记录已传送的长度,若长度超过文件大小则完成接收。
4.断开连接
文件传输因其他原因终止,客户端将关闭正在传输的文件,用close()函数关闭套接字,再创建一个新的套接字,并释放缓冲区内存。
传输结束后,服务器端关闭套接字。