发布时间:2014-11-10 16:19:54
wait和waitpid的区别前面有对应的文章介绍了(http://blog.chinaunix.net/uid-16813896-id-4454473.html)。本文偏向于介绍多服务器子进程的情况下,wait和waitpid的使用。基本程序还是使用TCP回射程序。 场景: 客户端开启多个连接同时连上服务器当客户端输入CONTROL + D(即结束键盘.........【阅读全文】
发布时间:2014-11-06 10:49:00
一、特点有了raw socket,有了区别于TCP和UDP套接字的几个特点:1.可以处理ICMPv4,IGMPv4,ICMPv6.2.可以读写内核不处理其协议字段的IPv4数据报.3.使用IP_HDRINCL套接字选项自行构造IPv4首部。这个能力可用于构造譬如说TCP或UDP分组.二、raw socket的创建1)把socket API的第二个参数设置成为SOCK_RAW,以创建一个原始.........【阅读全文】
发布时间:2014-11-03 15:45:14
在UDP套接字上调用connect是一个完全的本地操作,并不给对端主机发送任何信息,只是保存对端的IP地址和端口号,并且同时也将给出了本端的IP地址和端口。点击(此处)折叠或打开#include <unistd.h>#include <stdio.h>#include <stdlib.h>#include <sy.........【阅读全文】
发布时间:2014-11-03 14:37:19
在回显程序中,如果服务器进程没有运行,当我们在客户端键入一行文本时,那么什么也不会发生。客户永远阻塞于它的recvfrom调用,等待一个永远不会出现的服务器应答。抓包查看此时服务器和客户端的交互,可以发现在arp交互以后,服务器向客户端发送了一个ICMP端口不可到达的报文,不过这个报文不返回给客户进程。ICMP端口.........【阅读全文】
发布时间:2014-11-03 11:14:02
对于udp而言,recvfrom只返回发送报文的源地址,但是无法知道发送报文的目的地址和收到报文的接口是哪一个?为了完成这个目的,可以通过setsockopt设置IP_PKTINFO,并使用recvmsg的控制信息来实现。如果支持IP_RECVDSTADDR和IP_RECVIF的话,也可以使用IP_RECVDSTADDR和IP_RECVIF来实现。size_t recvmsg(int sockfd, stru.........【阅读全文】