
网络编程
文章平均质量分 82
wwl33695
这个作者很懒,什么都没留下…
展开
-
非阻塞IO 和阻塞IO:
在网络编程中对于一个网络句柄会遇到阻塞IO 和非阻塞IO 的概念, 这里对于这两种socket 先做一下说明: 基本概念: 阻塞IO:: socket 的阻塞模式意味着必须要做完IO 操作(包括错误)才会 返回。 非阻塞IO::转载 2013-04-01 14:56:47 · 351 阅读 · 0 评论 -
Overlapped I/O模型深入分析
Overlapped I/O也称Asynchronous I/O,异步I/O模型。异步I/O和同步I/O不同,同步I/O时,程序被挂起,一直到I/O处理完,程序才能获得控制。异步I/O,调用一个函数告诉OS,进行I/O操作,不等I/O结束就立即返回,继续程序执行,操作系统完成I/O之后,通知消息给你。Overlapped I/O只是一种模型,它可以由内核对象(hand),事件内核对象(hEvent转载 2013-06-27 15:30:15 · 354 阅读 · 0 评论 -
WIN32 socket编程之select模式
Select在Socket编程中还是比较重要的,它能够监视我们需要监视的文件描述符的变化情况——读写或是异常。 Select的函数格式(Unix系统下的伯克利socket编程,和windows下的略有区别,体现两个方面:一是select函数的第一个参 数,在windows下可以忽略,但在linux下必须设为最大文件描述符加1;二是结构fd_set在两个系统里定义不一样):int sel转载 2013-06-19 15:18:17 · 528 阅读 · 0 评论 -
Linux Socket编程
“一切皆Socket!”话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。——有感于实际编程和开源项目研究。我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有转载 2013-05-28 12:11:33 · 310 阅读 · 0 评论 -
如何解决TIME_WAIT过多的解决办法(附Socket中的TIME_WAIT状态详解)
如果使用了nginx代理,那么系统TIME_WAIT的数量会变得比较多,这是由于 nginx代理使用了短链接的方式和后端交互的原因,使得nginx和后端的ESTABLISHED变得很少而TIME_WAIT很多。这不但发生在安装 nginx的代理服务器上,而且也会使后端的app服务器上有大量的TIME_WAIT。查阅TIME_WAIT资料,发现这个状态很多也没什么大问题, 但可能因为它占用了系统过多转载 2013-05-23 17:48:04 · 672 阅读 · 0 评论 -
tcp socket的发送与接收缓冲区
(1)应用程序可通过调用send(write, sendmsg等)利用tcp socket向网络发送应用数据,而tcp/ip协议栈再通过网络设备接口把已经组织成struct sk_buff的应用数据(tcp数据报)真正发送到网络上,由于应用程序调用send的速度跟网络介质发送数据的速度存在差异,所以,一部分应用数据被 组织成tcp数据报之后,会缓存在tcp socket的发送缓存队列中,等待网络空转载 2013-05-23 17:20:16 · 604 阅读 · 0 评论 -
心跳包
心跳包就是在客户端和服务器间定时通知对方自己状态的一个自己定义的命令字,按照一定的时间间隔发送,类似于心跳,所以叫做心跳包。 用来判断对方(设备,进程或其它网元)是否正常运行,采用定时发送简单的通讯包,如果在指定时间段内未收到对方响应,则判断对方已经离线。用于 检测TCP的异常断开。基本原因是服务器端不能有效的判断客户端是否在线,也就是说,服务器无法区分客户端是长时间在空闲,还是已经掉线的情转载 2013-05-23 17:31:09 · 508 阅读 · 0 评论 -
wireshark 实用过滤表达式(针对ip、协议、端口、长度和内容)
首先说几个最常用的关键字,“eq” 和 “==”等同,可以使用 “and” 表示并且,“or”表示或者。“!" 和 "not” 都表示取反。 一、针对wireshark最常用的自然是针对IP地址的过滤。其中有几种情况: (1)对源地址为192.168.0.1的包的过滤,即抓取源地址满足要求的包。 表达式为:ip.src == 192.168.0.1 (转载 2013-04-28 18:04:25 · 266 阅读 · 0 评论 -
网络技术思想漫谈
单端端口聚合与环路端口聚和旨在以太网链路上做负载或者提供冗余备份,它和另一种方案有着根本的冲突,因为它不但可以做冗余,还可以做负载,然而传统以太网上根本就不可以做多路径负载均衡!以上说的另一种方案就是物理环路+STP的方案。因此在以太网部署端口聚合一定要注意,它最好是封闭的,也就是说,如果你在一台设备上启用了端口聚合,那么对端设备也要同样的聚合,确保不发生环路,检测手段有mac flappin转载 2013-04-18 15:47:08 · 350 阅读 · 0 评论 -
WSAGetLastError()部分常见返回值
10004 —WSAEINTR函数调用中断。该错误表明由于对W S A C a n c e l B l o c k i n g C a l l 的调用,造成了一次调用被强行中断。10009 —WSAEBADF文件句柄错误。该错误表明提供的文件句柄无效。在Microsoft Windows CE 下,s o c k e t 函数可能返回这个错误,表明共享串口处于“忙”状态。转载 2013-06-27 15:35:40 · 386 阅读 · 0 评论