上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 59 下一页
摘要: 概述 使用UDP编写的一些流行的应用程序有:DNS(域名系统)、NFS(网络文件系统)和SNMP(简单网络管理协议)。 如下图所示,给出了典型的UDP客户/服务器程序的函数调用: 客户不与服务器建立连接,而是只管使用sendto函数给服务器发送数据报,其中必须作为参数指定目的地(即服务器)的地址。类似地,服务器不接受来自客户的连接,而是只管调用recvfrom函数,等待来自某个客户的数据... 阅读全文
posted @ 2014-03-10 16:55 ITtecman 阅读(1196) 评论(0) 推荐(0) 编辑
摘要: tcpdump程序 tcpdump一边从网络读入分组一边显示关于这些分组的大量信息。它还能够只显示与所指定的准则匹配的那些分组。 netstat程序 netstat服务于多个目的: (1)展示网络端点的状态。 (2)展示某个主机上各个接口所属的多播组。 (3)使用-s选项显示各个协议的统计信息。 (4)使用-r选项显示路由表或使用-i选项显示接口信息。 lsof程序 名字lsof... 阅读全文
posted @ 2014-03-10 16:09 ITtecman 阅读(699) 评论(0) 推荐(0) 编辑
摘要: 概述有很多方法来获取和设置影响套接口的选项:getsockopt和setsockopt函数fcntl函数ioctl函数getsockopt和setsockopt函数这两个函数仅用于套接口。#include int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen);int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t *optlen);返回值:0——成功,-1——出错其中,sock 阅读全文
posted @ 2014-03-10 09:50 ITtecman 阅读(614) 评论(0) 推荐(0) 编辑
摘要: 将http://www.cnblogs.com/nufangrensheng/p/3590002.html中的select改用poll。 intmain(int argc, char **argv){ int i, maxi, listenfd, connfd, sockfd; int nr... 阅读全文
posted @ 2014-03-09 16:47 ITtecman 阅读(324) 评论(0) 推荐(0) 编辑
摘要: poll函数提供的功能与select类似,不过在处理流设备时,它能够提供额外的信息。 poll函数原型 #include int poll(struct pollfd *fdarray, unsigned long nfds, int timeout);返回:就绪描述字的个数,0——超时,-1——出错poll函数参数介绍第一个参数是指向一个结构数组第一个元素的指针。每个数组元素都是一个p... 阅读全文
posted @ 2014-03-09 16:12 ITtecman 阅读(769) 评论(0) 推荐(0) 编辑
摘要: 函数原型 pselect函数是由POSIX发明的,其原型如下: #include #include #include int pselect (int maxfdpl, fd_set *readset, fd_set *writeset, fd_set *exceptset, const struct timespec *timeout, const sigset_t *s... 阅读全文
posted @ 2014-03-09 15:25 ITtecman 阅读(545) 评论(0) 推荐(0) 编辑
摘要: 拒绝服务型攻击的概念 当一个服务器在处理多个客户时,它绝不能阻塞于只与单个客户相关的某个函数调用。否则可能导致服务器被挂起,拒绝为所有其他客户提供服务。这就是所谓的拒绝服务(denial-of-service)型攻击。它就是针对服务器做些动作,导致服务器不再能为其他合法客户提供服务。 拒绝服务型攻击的解决办法 (1)使用非阻塞I/O。 (2)让每个客户由单独的控制线程提供服务(例如创建一个... 阅读全文
posted @ 2014-03-09 14:51 ITtecman 阅读(313) 评论(0) 推荐(0) 编辑
摘要: 改写http://www.cnblogs.com/nufangrensheng/p/3587962.html中的TCP回射服务器程序,把它重写成使用select来处理任意数目个客户的单进程程序,而不是为每个客户派生一个子进程。 int main(int argc, char **argv){ int i, maxi, maxfd, listenfd... 阅读全文
posted @ 2014-03-09 14:38 ITtecman 阅读(474) 评论(0) 推荐(0) 编辑
摘要: 终止网络连接的通常方法是调用close函数。不过close有两个限制,却可以使用shutdown来避免。 close 把描述字的引用计数减1,仅在该计数变为0时才关闭套接口。使用shutdown可以不管引用计数就激发TCP的正常连接终止序列(由FIN开始的四个分节). close 终止数据传送的两个方向:读和写。既然TCP连接是全双工的,有时候我们需要告知对端我们已经完成了数据发送,即使对端仍... 阅读全文
posted @ 2014-03-09 13:01 ITtecman 阅读(370) 评论(0) 推荐(0) 编辑
摘要: 我们可以使用select函数重写http://www.cnblogs.com/nufangrensheng/p/3587962.html中的str_cli函数,这样服务器进程一终止,客户就能马上得到通知。早先那个版本的问题在于:当套接口上发生某些事件时,客户可能阻塞于fgets调用。新版本改为阻塞于select调用,等待要么标准输入可读,要么套接口可读。下图展示了调用select所处理的各种条件。... 阅读全文
posted @ 2014-03-09 12:29 ITtecman 阅读(1157) 评论(0) 推荐(0) 编辑
上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 59 下一页