首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

文章分类 -  网络编程

摘要:Some basic rules to coding a daemon prevent unwanted interactions from happening. We state these rules and then show a function, daemonize, that implements them.编写一个没有交互功能的守护进程是有一定的步骤的。我们列出相关的步骤,并且给出一... 阅读全文

posted @ 2010-01-18 11:05 放飞自我 阅读(3995) 评论(0) 推荐(0)

摘要:# include <mqueue.h>mqd_t mq_open(const char *name,int oflag);mqd_t mq_open(const char *name,int oflag, mode_t mode, struct mq_attr *attr);创建一个新的消息队列或打开一个已存在的消息队列oflag参数是: O_RDONLY Open the queu... 阅读全文

posted @ 2009-12-28 15:12 放飞自我 阅读(2735) 评论(0) 推荐(0)

摘要:高级I/O函数以下这两个函数是最通用的I/O函数,recvmsg可以代替read, readv, recv 和 recvfrom。 同样,sendmsg可以代替其他的发送函数。#include < sys/socket.h >ssize_t recvmsg(int sockfd, struct msghdr * msg, int flags)ssize_t sendmsg(int so... 阅读全文

posted @ 2009-12-11 17:09 放飞自我 阅读(515) 评论(0) 推荐(0)

摘要:xinetd取代了inetd,并且提供了访问控制、加强的日志和资源管理功能。xinetd已经成为Red Hat 7 和 Mandrake 7.2的Internet标准超级守护进程。这篇文章将引导你如何应用一些它的特性,这些特性基于xinetd 2.1.8.8 pre3版本。 阅读全文

posted @ 2009-11-01 22:59 放飞自我 阅读(694) 评论(0) 推荐(0)

摘要:定义: 守护进程 daemon 是在后台运行不受终端控制的进程。启动方法:1. 很多守护进程是系统初始化脚本启动的,一般在/etc目录或者/etc/rc开头的目录2. 很多网络服务器是由inetd超级服务器启动的3. cron守护进程按规定的时间启动某个程序,可以把你的程序定个时间由他启动4. at命令制定某一时刻启动某个进程5. 也可以在用户终端启动,一般在测试守护进程或者守护进程需要重启时使用... 阅读全文

posted @ 2009-11-01 22:55 放飞自我 阅读(569) 评论(0) 推荐(0)

摘要:在这一章里主要讲述了用多种方法获取和设置套接口选项。l getsockopt/setsockoptl fcntll ioctl<sys/socket.h>int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen)int setsockopt(int sockfd, int lev... 阅读全文

posted @ 2009-11-01 22:54 放飞自我 阅读(745) 评论(0) 推荐(0)

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

posted @ 2009-11-01 22:53 放飞自我 阅读(2387) 评论(0) 推荐(0)

摘要:信号集<signal.h>int sigemptyset( sigset_t *set)int sigfillset(sigset_t *set)int sigaddset(sigset_t *set, int signum)int sigdelset(sigset_t *set, int signum)int sigismember(const sigset_t *set, int ... 阅读全文

posted @ 2009-11-01 22:52 放飞自我 阅读(660) 评论(0) 推荐(0)

摘要:如果一个或多个I/O条件满足,我们可以被通知到。场合:1. 当客户处理多个描述字时2. 一个客户同时处理多个套接口3. 一个tcp服务器既要处理监听套接口,又要处理已连接的套接口4. 一个服务器既要处理tcp, 又要处理UDP5. 一个服务器要处理多个服务或者多个协议I/O模型:l 阻塞l 非阻塞l 信号驱动l 异步l I/O复用<sys/select.h> <sys/time.h>int select( int maxfdp, fd_set *readset, fd_set *writeset, fd_set * exceptset, const struct tim 阅读全文

posted @ 2009-11-01 22:52 放飞自我 阅读(1033) 评论(0) 推荐(0)

摘要:数据类型<sys/types.h>int8_t带符号8位整数uint8_t无符号8位整数<sys/socket.h>sa_family_t套接口地址结构的地址族socklen_t长度,一般为uint32_t<netinet/in.h>in_addr_tipv4地址,一般32位in_port_ttcp/udp端口,一般16位结构<netinet/in.h&g... 阅读全文

posted @ 2009-11-01 22:51 放飞自我 阅读(1472) 评论(0) 推荐(0)