
2.2. 网络
文章平均质量分 79
AshlingR
C/C++ ,linux,网络编程,http协议,分布式 欢迎技术交流
展开
-
非阻塞connect
在一个TCP套接口被设置为非阻塞之后调用connect,connect会立即返回EINPROGRESS错误,表示连接操作正在进行中,但是仍未完成;同时TCP的三路握手操作继续进行;在这之后,我们可以调用select来检查这个链接是否建立成功;非阻塞connect有三种用途:1.我们可以在三路握手的同时做一些其它的处理.connect操作要花一个往返时间完成,而且可以是在任何地方,从几个毫秒转载 2012-12-01 21:02:39 · 827 阅读 · 0 评论 -
UNP Chapter 25 - 原始套接口(icmp的实现)
25.1. 概述原始套接口提供以下三种TCP及UDP套接口一般不提供的功能。1. 使用原始套接口可以读写ICMPv4,IGMPv4,ICMPv6分组。例如:Ping程序,就使用原始套接口发送ICMP回射请求,并接受ICMP回射应答。用于多播路由的守护进程:mrouted,同样利用原始套接口来发送和接收IGMPv4分组。上述功能同样允许使用ICMP或IGMP构造的应用程序完成作为用户进程处理原创 2013-04-28 09:32:49 · 1729 阅读 · 2 评论 -
通过iptables实现数据包转发
实验环境:系统:centos6.2 linux2.6vmware虚拟环境测试有A、B、C三台机器A有一个块网卡: eth1:1923168.66.225B一个网卡:eth0:192.168.66.10C一个网卡:eth0:192.168.66.11由于某种需要,我希望B能将数据包发给C,但是又不能直接发送,而A又能与B、C交互数据包,此时,我就希望,B将数据包原创 2013-05-19 19:11:14 · 9744 阅读 · 2 评论 -
epoll模型实例
select/epoll的特点select的特点:select 选择句柄的时候,是遍历所有句柄,也就是说句柄有事件响应时,select需要遍历所有句柄才能获取到哪些句柄有事件通知,因此效率是非常低。但是如果连接很少的情况下, select和epoll的LT触发模式相比, 性能上差别不大。这 里要多说一句,select支持的句柄数是有限制的, 同时只支持1024个,这个是句柄集合限制的,如果原创 2013-04-02 22:07:22 · 1683 阅读 · 0 评论 -
网络编程简单例子(windows、linux)
//client#include #include void main(){ WORD wVersionRequested ; WSADATA wsaData ; int err; wVersionRequested = MAKEWORD( 1, 1) ; err = WSAStartup( wVersionRequested ,&wsaData ); if(err != 0)原创 2013-08-14 11:09:52 · 1757 阅读 · 1 评论 -
setsockopt选项说明与使用汇总
1. SO_REUSEADDR 如果在已经处于 ESTABLISHED状态下的socket(一般由端口号和标志符区分)调用 closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket: BOOL bReuseaddr=TRUE; setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,原创 2013-02-25 10:32:39 · 1147 阅读 · 0 评论 -
在centos上安装lksctp
前几天想写写sctp 代码,发现在自己的centos上没有相关的库。于是找了一下。想下个安装包,找了半天都是ubuntu的。最后还是一招管用呵呵----yum 在http://sourceforge.net/projects/lksctp/files/ 网站上下载最新版本 lksctp-tools-1.0.13.tar.gz (当时最新的)解压该包,查看INSTALL 文件,里原创 2012-08-08 08:40:53 · 3596 阅读 · 0 评论 -
unix网络编程——ioctl 函数的用法详解
1.介绍Linux网络程序与内核交互的方法是通过ioctl来实现的,ioctl与网络协议栈进行交互,可得到网络接口的信息,网卡设备的映射属性和配置网络接口.并且还能够查看,修改,删除ARP高速缓存的信息,所以,我们有必要了解一下ioctl函数的具体实现.2.函数说明SYNOPSIS #include int ioctl(int d, int req原创 2012-11-26 21:39:17 · 10493 阅读 · 1 评论 -
unix 网络编程--select (一)
下面是一个很不错的select的例子,避免了调用fork而产生的新进程的开销:下面是server 代码:#include #include #include /* See NOTES */#include #include #include #include #include #include #define MAXLINE 1024typ原创 2012-11-15 21:37:15 · 2485 阅读 · 0 评论 -
IPV4 与IPV6 头部结构与其区别
IPV4I P数据报非常简单,就是在数据块(称为净荷)的前面加上一个包头。I P数据报中的数据(包括包头中的数据)以3 2位( 4字节或4个八位组)的方式来组织。图2 - 3中展示了I P头字段的排列。从中可以看出,所有I P数据报头最小长度是5个字( 2 0字节),如果有其他选项的话,包头可能会更长。1. IP头字段I P v 4头字段包括:• 版本:这个4位字段原创 2012-11-25 21:41:01 · 7112 阅读 · 0 评论