(一)TCP客户端/服务器通信------基础函数篇

1. 客户端和服务器程序流程图

 (一)TCP客户端/服务器通信------基础函数篇

2. 基本TCP套接字编程

(1) Socket函数

Socket函数:指定期望的协议族(IPv4IPv6等)和套接字类型(字节流、数据报等),返回套接字描述符(成功时>0的整数)

 (一)TCP客户端/服务器通信------基础函数篇

参数:family:协议族;type:套接字类型;protocol:协议类型常数。

(2) Bind函数

Bind函数:为服务器绑定本地ip和端口,一般为通配ip地址和服务器众所周知端口。

 (一)TCP客户端/服务器通信------基础函数篇

参数:2,协议地址结构的指针;3,协议地址结构的长度。

(3) Connect函数

Connect函数:客户端在调用connect函数时指定外地ip地址和外地端口。

 (一)TCP客户端/服务器通信------基础函数篇

参数:2,服务器协议地址结构的指针;3,服务器协议地址结构的长度。

(4) Listen函数

Listen函数:把一个未连接的套接字转换成一个被动套接字,指示内核应接受指向该套接字的链接请求。

 (一)TCP客户端/服务器通信------基础函数篇

参数:2,队列最大长度(未完成链接队列、以完成链接队列)。

(5) Accept函数

Accept函数:由TCP服务器调用,用于从完成链接队列队头返回下一个以完成连接。

 (一)TCP客户端/服务器通信------基础函数篇

参数:sockfd:监听套接字描述符;cliaddr:客户端协议地址结构指针;addrlen:客户端协议地址的长度。

返回:以连接套接字的描述符。

(6) Forkexec函数

Fork函数是unix中派生新进程的唯一方法。Fork的神奇之处:被调用一次,返回两次。在父进程,返回子进程ID号;在子进程,返回0.子进程共享父进程的资源。

Fork有两个典型用法:1)一个进程创建一个自身的副本。2)一个进程想要执行另一个程序。借助exec函数。

(7)close函数

Close函数:把该套接字标记成已关闭,然后立即返回调用进程。

(一)TCP客户端/服务器通信------基础函数篇