边缘触发(Edge Trigger)和条件触发(Level Trigger)

以下内容摘自网络:

 

      边缘触发是指每当状态变化时发生一个io事件,条件触发是只要满足条件就发 
生一个io事件。举个读socket的例子,假定经过长时间的沉默后,现在来了100个字 
节,这时无论边缘触发和条件触发都会产生一个read ready notification通知应用程 
序可读。应用程序读了50个字节,然后重新调用api等待io事件。这时条件触发的api会 
因为还有50个字节可读从而立即返回用户一个rea
更多... “边缘触发(Edge Trigger)和条件触发(Level Trigger)”

IP 组播

先澄清一下几个概念:IP 组播, UDP组播, UDP多播。后两者从字面上就可以看出是同一个东西,但是前两者之间就比较难以区分了,首先看最前面的字母,IP, UDP,明显不是一回事,但是其实他们是一回事。到底怎么理解呢?那让我们先看看IP 组播是怎么一回事。

我们引用一段英文解释:

IP multicast is a technique for one-to-many and many-to-many real-time co… 更多... “IP 组播”

TCP三次握手及四次挥手详细图解

TCP三次握手及四次挥手详细图解

相对于SOCKET开发者,TCP创建过程和链接折除过程是由TCP/IP协议栈自动创建的.因此开发者并不需要控制这个过程.但是对于理解TCP底层运作机制,相当有帮助.

而且对于有网络协议工程师之类笔试,几乎是必考的内容.企业对这个问题热情之高,出乎我的意料:-)。有时上午面试前强调这个问题,并重复讲一次,下午几乎每一个人都被问到这个问题。

因此在这里详细解释一下这两个过程… 更多... “TCP三次握手及四次挥手详细图解”

linux效率优于select的epoll模型

转载自:

http://www.cnblogs.com/OnlyXP/archive/2007/08/10/851222.html

 

epoll精髓

在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。
相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用… 更多... “linux效率优于select的epoll模型”

recv或者recvfrom

recv和recvfrom都是用来接受来自的网络的数据。来看看它们的原型:

 

int recv(
  SOCKET
s,      
  char FAR *buf, 
  int len,       
  int flags      
);

int recvfrom(
  SOCKET
s,                  
  char FAR* buf,             
  int len,                   
  int flags,                 
  struct sockaddr FAR *from, 
  int FAR *fromlen           
);

 

这是在windows下面的定义。在linux下面的定义只是将S… 更多... “recv或者recvfrom”

linux安装man page

好兴奋啊,今天终于可以用man来查看函数了,这个问题已经困扰了我好久好久了,花了不少功夫,为了解决这个问题,还特意加了linux 开发QQ群,结果也没有解决这个问题。

 

那么怎么来安装呢?其实非常简单(其实好多问题,就是有那么一心半点的技巧或者信息不知道,知道了,做起来非常简单,也许几分钟就搞定,但是可能之前花了几百个小时)。

 

先下载man page,这里提供一个我使用的连接:

http://www.kern更多... “linux安装man page”

禁止批处理中的某一条命令回显结果(批处理中的sleep)

本人在批处理的过程中有这样一个需求:

等待一段时间,然后再接着做别的事情。在windows中没有类似与linux脚本中sleep n这样的命令,因此我们另觅他法。这里我用如下的方式实现,如果你有别的方法我们可以交流交流。

 

ping 1.1.1.1 -w 500 -n 1

 

 

上面的命令的意思是ping 1.1.1.1的主机,我们知道这个主机在任何地方都是不存在的,那么一定会超时,我们可以设定超时的时长,在这里我设定的50… 更多... “禁止批处理中的某一条命令回显结果(批处理中的sleep)”