在上一篇博客中(https://blog.csdn.net/Mr_suen/article/details/108116504),太上皇介绍了HTTP文档发送的简要流程,这为朕的工作深入提供了参考,本章主要是整理了在API接口中进行文件传输协议的实现。
关于Socket的那些事
Socket是在应用层和传输层之间的一个抽象层,他把TCP/IP层复杂的操作抽象成几个简单的接口,供应用层调用实现进程在网络中的通信。在通信模型中,Server和Client各自建立了一个Socket对象,然后通过Socket对象对数据进行传输。一般情况下,服务器会处于一个循环状态,使用listen()监听某个端口是否有连接请求,等待客户端建立完Socket发出Connect(连接)请求,Server端向Client端发回Accept(接收)消息。一个连接就建立起来了,Server端和Client端都可以通过Send、Write等方法与对方通信。
对于一个功能齐全的Socket,其工作过程包括如下几个步骤:
- 创建Socket;
- 打开连接到Socket的输入/出流;
- 按照一定的协议对Socket进行读/写操作;
- 关闭Socket。
套接字可看作是不同主机间的进程进行双向通信的虚拟管道端点:网络中两台主机各自在自己机器上建立通信的端点--套接字,然后使用套接字进行数据通信。一个套接字包含五个基本元素:协议类型、本地IP地址、本地端口、远端IP地址和远端端口。在操作系统中,套接