1,在一个完整的TCP 客户/服务程序例子的基础上弄清以下问题:
客户和服务器启动时发生什么;
客户调用socket和connect,后者引起TCP的三路握手过程。当三路握手完成后,客户
的connect和服务器的accept均返回。
(1).客户调用str_cli函数,该函数将阻塞于fgets调用,因为我们还未曾键入过一行文本
(2).当服务器中的accept返回时,服务器调用fork,再由子进程调用str_echo.该函数调
用readline,readline调用read,而read在等待客户送入一行文本期间阻塞。
(3).另一方面,服务器进程再次调用accept并阻塞,等待下一个客户连接。
自此我们有三个都在睡眠(即已阻塞)的进程:客户进程,服务器父进程和服务器子进程
客户正常终止时发生什么;
若服务器进程在客户之前终止,则客户发生什么;
若服务器主机崩溃,则客户发生什么;