客户端和服务器端的交互过程:
socket作为网络连接和数据接收的接口,客户端和服务器端在连接前需要初始化socket;不同的主机通过ip+端口标识不同的功能接口;tcp和udp是两者进行交互的方式,tcp是面向连接的,udp是无连接的。
以tcp为例,
服务器端初始化socket,bind绑定ip和端口,listen监听端口,准备accept接收连接;
客户端初始化scoket,connect与服务器端连接;
数据传输过程:客户端向操作系统内核发起write字节流写操作,写入内核发送缓冲区,内核协议栈从发送缓冲区read并封装报文,通过网络设备传输到服务器端,服务器端从内核得到消息,将字节流从内核接收缓冲区read读入进程并处理。服务器端以同样的方式写给客户端。
udp方式的交互过程,无需连接过程,适合实时的数据传输,允许数据传输有误差;