一、TCP套接字编程
-
服务器进程必须先处于运行状态
- 创建一个监听socket(或欢迎socket)
- 和本地端口绑定(指定监听socket的监听端口)
- 监听socket阻塞等待接收客户端的连接
监听socket只有服务器IP地址和程序端口号,格式如下:
socket | ip:port|
-
创建客户端本地套接字(隐式绑定到本地Port)
客户端绑定的Port由传输层自行分配
- 指定服务器进程的IP地址和port端口号
-
当有客户端连接请求到来
-
服务器的监听socket接收到来自客户端的请求,返回一个连接socket(与监听socket不同),与客户端端通信
Connection Socket信息(维护服务器和客户端IP和Port四元组信息):
socket | server ip:port | client ip:port|
-
允许服务器与多个客户端通信
-
使用客户端源IP和源端口来区分不同客户端的连接Socket
-
- 客户端调用传输层的连接API调用生效后,客户端建立了与服务器的TCP连接,可以进行通信
-
数据结构
-
sockaddr_in
IP地址和Port绑定关系的数据结构
struct sockaddr_in {
short sin_family; ——协议族IPV4/IPV6
u_short sin_port; ——端口
struct in_addr sin_addr;——IP地址
char
-