基本tcp套接字编程流程图:
socket()函数,指定通信的协议。
connect()函数,用于客户端与服务器建立连接。
bind()函数,用于将一个协议地址(Ipv4,Ipv6)赋予一个套接字。
远程过程调用RPC。
listen()函数,用于将服务器创建的套接字从主动转为被动,并指定内核为相应套接字连接的最大连接数。
accept()函数,用于服务器从已连接队列队头返回下一个已完成连接。
fork()函数,创建子进程。
- 注意该函数会返回两次,一个子进程只有一个父进程,一个父进程可以有多个子进程;
- 用法1:创建多个子进程用于执行不同操作,网络服务器的典型用法;
- 用法2:一个进程为了执行其他程序,通过创建一个子进程,然后调用exec把自身替换成新的程序,shell的典型用法。
exec()函数:执行硬盘上可执行文件的方式,有六个,其中有一个为系统调用,其余五个为函数。
区别:
- 待执行的文件是有文件名指定,还是路径名指定;
- 参数是一一列出还是用数组指针指定;
- 把调用进程的环境传递给新程序还是重新指定环境。