网络高级编程.ppt

网络高级编程

I/O模式 五种 I/O操作方式: 阻塞 I/O 非阻塞 I/O I/O多路复用 信号驱动 I/O(SIGIO) 异步 I/O 一般来说,程序进行输入操作有两步: 1.等待有数据可以读 2.将数据从系统内核中拷贝到程序的数据区。 对于一个对套接字的输入操作,第一步一般来说是等待数据从网络上传到本地。当数据包到达的时候,数据将会从网络层拷贝到内核的缓存中;第二步是从内核中把数据拷贝到程序的数据区中。 阻塞 I/O模式 阻塞 I/O模式是最普遍使用的 I/O模式。大部分程序使用的都是阻塞模式的 I/O 。缺省的,一个套接字建立后所处于的模式就是阻塞 I/O模式。 对于一个 UDP套接字来说,数据就绪的标志比较简单: 已经收到了一整个数据报 没有收到。 而 TCP这个概念就比较复杂,需要附加一些其他的变量。一个进程调用 recvfrom ,然后系统调用并不返回直到有数据报到达本地系统,然后系统将数据拷贝到进程的缓存中。(如果系统调用收到一个中断信号,则它的调用会被中断)我们称这个进程在调用 recvfrom一直到从 recvfrom返回这段时间是阻塞的。当 recvfrom正常返回时,我们的进程继续它的操作。 非阻塞模式 I/O 当我们将一个套接字设置为非阻塞模式,我们相当于告诉了系统内核:“当我请求的 I/O操作不能够

文档评论(0)

1亿VIP精品文档

相关文档