(一)TCP客户端/服务器通信------基础函数篇
1. 客户端和服务器程序流程图
2. 基本TCP套接字编程
(1) Socket函数
Socket函数:指定期望的协议族(IPv4、IPv6等)和套接字类型(字节流、数据报等),返回套接字描述符(成功时>0的整数)
参数:family:协议族;type:套接字类型;protocol:协议类型常数。
(2) Bind函数
Bind函数:为服务器绑定本地ip和端口,一般为通配ip地址和服务器众所周知端口。
参数:2,协议地址结构的指针;3,协议地址结构的长度。
(3) Connect函数
Connect函数:客户端在调用connect函数时指定外地ip地址和外地端口。
参数:2,服务器协议地址结构的指针;3,服务器协议地址结构的长度。
(4) Listen函数
Listen函数:把一个未连接的套接字转换成一个被动套接字,指示内核应接受指向该套接字的链接请求。
参数:2,队列最大长度(未完成链接队列、以完成链接队列)。
(5) Accept函数
Accept函数:由TCP服务器调用,用于从完成链接队列队头返回下一个以完成连接。
参数:sockfd:监听套接字描述符;cliaddr:客户端协议地址结构指针;addrlen:客户端协议地址的长度。
返回:以连接套接字的描述符。
(6) Fork和exec函数
Fork函数是unix中派生新进程的唯一方法。Fork的神奇之处:被调用一次,返回两次。在父进程,返回子进程ID号;在子进程,返回0.子进程共享父进程的资源。
Fork有两个典型用法:1)一个进程创建一个自身的副本。2)一个进程想要执行另一个程序。借助exec函数。
(7)close函数
Close函数:把该套接字标记成已关闭,然后立即返回调用进程。