
网络编程
文章平均质量分 73
ixidof
这个作者很懒,什么都没留下…
展开
-
套接字中的数据转换(大端模式/小端模式)
通常使用的有两种数据类型:短型(两个字节)和长型(四个字节)。 下面介绍的这些转换函数对于这两类的无符号整型变量都可以正确的转换。 如果你想将一个短型数据从主机字节顺序转换到网络字节顺序的话,有这样一个函数htnos: 它是以"h”开头的,代表“主机”; 紧跟着它的是"to",代表“转换到”; 然后是"n",代表“网络”; 最转载 2010-01-27 23:03:00 · 3737 阅读 · 0 评论 -
网络编程——走出"完成端口"的误区
网络编程——走出"完成端口"的误区转载 2011-02-14 21:44:00 · 768 阅读 · 0 评论 -
3个学习Socket编程的简单例子
3个学习Socket编程的简单例子转载 2011-02-14 23:54:00 · 957 阅读 · 0 评论 -
网络模型(3)—— 多路复用模型
网络模型(3)—— 多路复用模型转载 2011-02-15 17:17:00 · 1097 阅读 · 0 评论 -
accept阻塞挡不住
accept阻塞挡不住转载 2011-02-15 23:22:00 · 3733 阅读 · 1 评论 -
网络模型(2)
网络模型(2)转载 2011-02-15 16:25:00 · 840 阅读 · 0 评论 -
sk_buff结构
文章出处:http://book.51cto.com/art/200912/168620.htm http://www.newsmth.net/pc/pccon.php?id=1363&nid=296040&pid=0&tag=0&tid=7570 内核层和用户层在网络方面的差别很大,在内核的网络层中sk_buff结构占有重要的地位,几乎所有的处转载 2012-02-12 12:51:10 · 1359 阅读 · 0 评论 -
udp的数据包一次发送多大为好
文章出处:http://blog.163.com/yuyi_vc/blog/static/170371753201152901727665/ 在进行UDP编程的时候,我们最容易想到的问题就是,一次发送多少bytes好? 当然,这个没有唯一的答案,相对于不同的系统,不同的要求,其得到的答案是不一样的,我这里仅对像ICQ这一类发送聊天消息的情况做分析,对于其他情况,你或许也转载 2012-07-27 14:36:58 · 8178 阅读 · 2 评论 -
从缓冲上看阻塞与非阻塞socket在发送接收上的区别
文章出处:http://blog.youkuaiyun.com/jwybobo2007/article/details/6164362 最近在网络上看到一些帖子以及回复,同时由搜索了一些网络上关于阻塞非阻塞区别的描述,发现很多人在描述两者的发送接收操作返回以及缓冲区处理的区别时,有不同程度的误解。所以我想写一篇文章来纠正错误,并作为记录方便查阅,如有转载,注明作者(jwybobo2007)以及转载 2012-07-29 09:45:40 · 2357 阅读 · 0 评论 -
书到用时方恨少,绝知此事要躬行--谈TCP/UDP编程
文章出处:http://blog.youkuaiyun.com/jkler_doyourself/article/details/2715672 原来以为自己对tcp(udp)/ip编程还算比较了解,因为自己也亲自拜读过《Unix环境高级编程》、《TCP/IP协议详解第一卷》这些计算机界圣经一般的数据。近来经历过一次和高中同学,现在已经是一个部门的同事,在一起解决他模块中的一个错误,才转载 2012-07-29 10:24:09 · 1578 阅读 · 0 评论 -
过载保护
文章出处:http://blog.youkuaiyun.com/turkeyzhou/article/details/7528151 过载保护,看似简单,但是要做好并不容易。这里用两个曾经经历的反面案例,给出过载保护的直观展现,并附上一点感想。 案例一基本情况 如下图,进程A是一个单进程系统,通过udp套接字接收前端请求进行处理。在处理过程中,需要访问后端转载 2013-06-17 00:22:04 · 836 阅读 · 0 评论 -
skbuff.h文件中NET_SKBUFF_DATA_USES_OFFSET宏的含义
文章出处:http://hi.baidu.com/xootus/item/2e2fb06f57afe22268105b13找到NET_SKBUFF_DATA_USES_OFFSET定义的地方,文件include/linux/skbuff.h#if BITS_PER_LONG > 32#define NET_SKBUFF_DATA_USES_OFFSET 1#endif转载 2013-07-15 00:02:35 · 1514 阅读 · 0 评论 -
虚拟网卡TUN/TAP设备使用实例
文章出处:http://blog.youkuaiyun.com/solstice/article/details/6579232转载渊源:这篇文章源自陈硕老师的博客,原文讨论的主题是在绕开操作系统协议栈的情况下,对tcp并发连接数的支持情况;因为其中对TUN / TAP设备的使用非常典型,而且讲解清晰,所以特部分转载过来作为资料留存;IBM developerworks上有一篇文章对t转载 2013-08-21 16:45:56 · 26958 阅读 · 1 评论 -
高性能网络编程 之 TCP连接的内存使用
文章出处:http://taohui.org.cn/tcpperf7.html转载 2014-05-26 21:08:51 · 1134 阅读 · 0 评论 -
非阻塞accept
非阻塞accept转载 2011-02-15 21:40:00 · 2996 阅读 · 0 评论 -
网络模型(1)—— 基础篇
网络模型(1)—— 基础篇转载 2011-02-15 14:54:00 · 955 阅读 · 0 评论 -
TUN/TAP
TUN/TAP转载 2010-12-31 00:32:00 · 786 阅读 · 0 评论 -
Berkeley套接字
Berkeley套接字应用程序接口(也作BSD套接字应用程序接口)包括了一个用C语言写成的应用程序开发库,主要用于实现进程间通讯的功能,在计算机网络通讯方面被广泛使用。 过程如下: 原语含义SOCKET创建一个新的通信端点BIND将一个本地地址关联到一个套接字上转载 2010-01-29 00:28:00 · 1453 阅读 · 0 评论 -
SOCKET编程之INADDR_ANY
INADDR_ANY就是指定地址为0.0.0.0的地址,这个地址事实上来表示不确定地址,或“所有地址”,“任意地址”。一般来说,在各个系统中均定义成为0值。 例如:MontiVista Linux中在/usr/inlcude/netinet/in.h中定义为: /*Address to accept any incoming messages.*/ #defi转载 2010-01-30 01:03:00 · 1196 阅读 · 0 评论 -
accept() 产生的Socekt端口是多少?
为了区分不同应用进程间的网络通信和连接,主要有3个参数:通信的目的IP地址、使用的传输层协议(TCP 或 UDP)和使用的端口号。 Socket的原意是“插座”。通过将这3个参数结合起来,与一个“插座”Socket绑定,应用层就可以和传输层通过套接字接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。 accept()产生的Socket端口号是多少?转载 2010-02-02 00:40:00 · 4301 阅读 · 2 评论 -
fd_set用法
select()机制中提供一fd_set的数据结构,实际上是一long类型的数组,每一个数组元素都能与一打开的文件句柄(不管是socket句柄,还是其他文件或命名管道或设备句柄)建立联系,建立联系的工作由程序员完成,当调用select()时,由内核根据IO状态修改fe_set的内容,由此来通知执行了select()的进程哪一socket或文件可读。 多端口复用函数select在调转载 2010-01-29 14:26:00 · 1191 阅读 · 0 评论 -
SOCKET编程中,select()函数的作用
select()在SOCKET编程中还是比较重要的,可是对于初学SOCKET的人来说都不太爱用select()写程序,他们只是习惯写诸如 conncet()、accept()、recv()或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用select()转载 2010-01-30 23:17:00 · 2185 阅读 · 0 评论 -
UDP SOCKET编程中的connect()
UDP是一个无连接的协议,因此socket函数connect()似乎对UDP是没有意义的,然而事实不是这样。 一个插口有几个属性,其中包括协议,本地地址/端口,目的地址/端口。 对于UDP来说: socket()函数建立一个插口; bind()函数指明了本地地址/端口(包括ADDR_ANY, 通配所有本地网络接口); connect()可以转载 2010-01-31 21:12:00 · 11304 阅读 · 0 评论 -
tcp/ip协议listen函数中的backlog参数的含义
文章出处:http://www.cppblog.com/thisisbin/archive/2010/02/07/107444.html To Understand the backlog argument, we must realize that for a given listening socket, the kernel maintains two queues:转载 2010-03-22 00:39:00 · 1531 阅读 · 0 评论 -
网络编程常见问题总结(2)
网络编程常见问题总结(2)转载 2010-07-03 23:24:00 · 1114 阅读 · 0 评论 -
网络编程常见问题总结(1)
网络编程常见问题总结(1)转载 2010-07-03 22:28:00 · 845 阅读 · 0 评论 -
gethostbyname和getservbyname这类调用是怎么实现的
gethostbyname和getservbyname这类调用是怎么实现的转载 2010-07-21 00:30:00 · 2890 阅读 · 0 评论 -
AF_INET和PF_INET的细微不同
AF_INET和PF_INET的细微不同转载 2010-07-26 20:19:00 · 2788 阅读 · 1 评论 -
关于gethostbyname在多线程环境下的阻塞问题
关于gethostbyname在多线程环境下的阻塞问题转载 2010-07-27 00:25:00 · 1679 阅读 · 0 评论 -
epoll和select/poll的区别
epoll和select/poll的区别转载 2010-08-09 00:30:00 · 1158 阅读 · 0 评论 -
TCP 包完整性检验
TCP 包完整性检验转载 2010-12-27 18:35:00 · 6558 阅读 · 0 评论 -
关于 tun/tap 设备
文章出处:http://wangcong.org/blog/archives/1679长期以来对tun和tap这对兄弟分不太清,今天下定决心研究了一下代码,总算是搞明白了。首先它们都是从/dev/net/tun里ioctl出来的虚拟设备,一个是通过IFF_TUN,另一个是 IFF_TAP。最好的例子莫过于vpnc里面的代码了。转载 2014-08-16 17:30:45 · 1158 阅读 · 0 评论