2013年7月23日

UNIX网络编程——ICMP报文分析:端口不可达

摘要: ICMP的一个规则是,ICMP差错报文必须包括生成该差错报文的数据报IP首部(包含任何选项),还必须至少包括跟在该IP首部后面的前8个字节(包含源端口和目的端口)。在我们的例子中,跟在IP首部后面的前8个字节包含UDP的首部。 我们利用前面博客中UNIX网络编程学习(18)中UDP回... 阅读全文

posted @ 2013-07-23 19:53 胡永光 阅读(394) 评论(0) 推荐(0) 编辑

UNIX网络编程——僵尸进程

摘要: 在fork()/exec()过程中,假设子进程结束时父进程仍存在,而父进程fork()之前既没安装SIGCHLD信号处理函数调用waitpid()等待子进程结束,又没有显式忽略该信号,则子进程成为僵尸进程,无法正常结束,此时即使是root身份kill -9也不能杀死僵尸进程。补救办法是杀... 阅读全文

posted @ 2013-07-23 19:51 胡永光 阅读(127) 评论(0) 推荐(0) 编辑

UNIX网络编程——I/O复用:select和poll函数

摘要: 我们看到TCP客户同时处理两个输入:标准输入和TCP套接字。我们遇到的问题是就在客户阻塞于(标准输入上)fgets调用,服务器进程会被杀死。服务器TCP虽然正确的给客户TCP发送了一个FIN,但是既然客户进程正阻塞于从标准输入读入的过程,它将看不到这个EOF,直到从套接字读时为止(可能额... 阅读全文

posted @ 2013-07-23 18:59 胡永光 阅读(126) 评论(0) 推荐(0) 编辑

UNIX网络编程——TCP回射服务器/客户端程序

摘要: 下面通过最简单的客户端/服务器程序的实例来学习socket API。 serv.c 程序的功能是从客户端读取字符然后直接回射回去:#include#include#include#include#include#include#include#... 阅读全文

posted @ 2013-07-23 08:42 胡永光 阅读(175) 评论(0) 推荐(0) 编辑

导航