socket编程
socket编程
1.什么是socket?
socket是应用层与TCP/IP协议簇通信的中间抽象层,就是对网络中不同主机的应用进程之间进行双向通信的端点的抽象,提供了应用层进程利用网络协议交换数据的机制。套接字上联应用层,下联协议栈,是应用程序利用网络协议进行通信的接口。
2.socket分类
SOCK_STREAM
基于TCP协议,面向连接,提供可靠传输、拥塞控制、数据校验、数据重传。
SOCK_DGRAM
尽最大努力交付,可以一对多通信,多对多通信。
SOCK_RAM
基于ip协议,可以基于ip协议自行组装数据包,利用原始套接字可以处理如ICMP、IGMP等网络层的数据包。
3.常用的api
1 |
|
4.基本的编程步骤
服务端
graph TD;
a(socket 创建socket文件)-->b(bind 绑定端口和ip地址)-->c(listen 开始监听ip和端口)-->d(accept 接收来自客户端的连接)-->e(read/write开始和客户端收发数据)
客户端
graph TD;
a(socket 创建socket文件)-->b(connect 连接服务器)-->c(read/write,开始和服务端收发数据)
5.实例
1.服务器
1 |
|
2.客户端
1 |
|
socket编程
https://dreamaccount.github.io/2022/04/17/socket编程/