Lomo's BLOG

行之而不著焉 习矣而不察焉 终身由之而不知其道也 众也 ~
  首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

文章分类 -  C/C++

摘要:1_服务器进程终止:启动服务器&客户,杀死服务器子进程,此时引发一个FIN发给客户,客户TCP给予相应ACK,TCP连接终止工作完成一半,父进程处理SIGCHLD后发FIN至客户端套接口,但客户端正阻塞于fgets调用,这便是问题所在。客户工作时有两个描述字:套接口和用户输入,它不能仅仅阻塞于其中某个特定的源,而应该阻塞于任意源的输入。这正是函数select&poll的一个目的。 2_服务器主机崩... 阅读全文

posted @ 2006-05-03 11:42 Lomo 阅读(297) 评论(0) 推荐(0)

摘要:在前面的例子中,我们调用wait&waitpid来处理终止的子进程: pid_t wait(int * statloc);pid_t waitpid(pid_t pid, int *statloc, int options); 两个函数都返回两个值:函数的返回值和终止的子进程ID,而子进程终止的状态则是通过statloc指针返回的。 wait&waitpid的区别是显而易见的,wa... 阅读全文

posted @ 2006-05-03 11:05 Lomo 阅读(1322) 评论(0) 推荐(0)

摘要:1_信号常常被叫做软中断,而且都是异步的。信号是可以在进程之间,内核与进程之间产生。 2_通过sigaction来设置一个信号的处理办法,通常有三种选择: ·信号发生时调用信号处理程序(signal handler),其中,有SIGKILL,SIGSTOP两个信号无法被捕捉。 ·通过设置信号处理办法为SIG_ING来忽略信号,同样的,SIGKILL,SIGSTOP无法被忽略。 ·... 阅读全文

posted @ 2006-05-01 11:21 Lomo 阅读(753) 评论(0) 推荐(0)

摘要:Sample: TcpServer: #include "unp.h"int main(int argc,char * *argv){ int listenfd,connfd; pid_t childpid; socklen_t clilen; struct sockaddr_in cliaddr,servaddr; listenfd = Socket(AF_INET,SOCK_STRE... 阅读全文

posted @ 2006-04-23 12:16 Lomo 阅读(653) 评论(0) 推荐(0)

摘要:1_ 建立一个与TCP服务器的连接:connect函数, int connect(int sockfd, const struct sockaddr * servaddr, socklen_t addrlen); 2_connect的几种错误返回类型: ·TCP客户没有收到SYN分节的响应,返回ETIMEDOUT; ·对客户的SYN相应是RESET,称为硬错,返回ECONNREFUSED;... 阅读全文

posted @ 2006-04-17 10:03 Lomo 阅读(649) 评论(0) 推荐(0)

摘要:1_通用套接口定义: struct sockaddr{uint8_t sa_len;sa_family_t sa_family;char sa_data[14];} 套接口函数常常被定义成使用指向套接口结构的指针,这要求对这些函数任何时候的调用都必须将指向特定于协议的套接口地址转换成指向通用套接口结构的指针类型: struct sockaddr_in serv;/**//*IPV4 socket ... 阅读全文

posted @ 2006-04-15 15:38 Lomo 阅读(402) 评论(0) 推荐(0)