上一页 1 ··· 18 19 20 21 22 23 24 25 26 ··· 59 下一页
摘要: 基于STREAMS的管道(简称STREAMS管道,STREAMS pipe)是一个双向(全双工)管道。单个STREAMS管道就能向父、子进程提供双向的数据流。 将http://www.cnblogs.com/nufangrensheng/p/3560130.html中图15-1中的单向箭头全部换成双向箭头,即为观察STREAMS管道的两种方式。 ... 阅读全文
posted @ 2014-02-26 13:19 ITtecman 阅读(1500) 评论(0) 推荐(1) 编辑
摘要: 通常,recv函数没有数据可用时会阻塞等待。同样地,当套接字输出队列没有足够空间来发送消息时函数send会阻塞。在套接字非阻塞模式下,行为会改变。在这种情况下,这些函数不会阻塞而是失败,设置errno为EWOULDBLOCK或者EAGAIN。当这些发生时,可以使用poll或select来判断何时能接收或者传输数据。 在Single UNIX Specification中,其实时扩展包含对通用异步... 阅读全文
posted @ 2014-02-25 21:20 ITtecman 阅读(727) 评论(0) 推荐(0) 编辑
摘要: 带外数据(Out-of-band data)是一些通信协议所支持的可选特征,允许更高优先级的数据比普通数据优先传输。即使传输队列已经有数据,带外数据先行传输。TCP支持带外数据,但是UDP不支持。套接字接口对带外数据的支持,很大程度受TCP带外数据具体实现的影响。 TCP将带外数据称为“紧急”数据(“urgent”data)。TCP仅支持一个字节的紧急数据,但是允许紧急数据在普通数据传递机制数据... 阅读全文
posted @ 2014-02-25 21:06 ITtecman 阅读(613) 评论(0) 推荐(0) 编辑
摘要: 套接字机制提供两个套接字选项接口来控制套接字的行为。一个接口用来设置选项,另一个接口允许查询一个选项的状态。可以获取或设置的三种选项: (1)通用选项,工作在所有套接字类型上。 (2)在套接字层次管理的选项,但是依赖于下层协议的支持。 (3)特定与某协议的选项,为每个协议所独有。 Single UNIX Specification仅定义了套接字层的选项(上述三种选项中的前两种选项)。 可... 阅读全文
posted @ 2014-02-25 20:23 ITtecman 阅读(415) 评论(0) 推荐(0) 编辑
摘要: 既然将套接字端点表示为文件描述符,那么只要建立连接,就可以使用read和write来通过套接字通信。通过在connect函数里设置对方地址,数据报套接字也可以“连接”。在套接字描述符上采用read和write是非常有意义的,因为可以传递套接字描述符到那些原先设计为处理本地文件的函数。而且可以安排传递套接字描述符到执行程序的子进程,该子进程并不了解套接字。尽管可以通过read和write交换数据,但这就是这两个函数所能做的一切。如果想指定选项、从多个客户端接收数据包或者发送带外数据,需要采用6个传递数据的套接字函数中的一个。三个函数用来发送数据,三个用来接收数据。首先,考察用于发送数据的函数。最 阅读全文
posted @ 2014-02-25 18:09 ITtecman 阅读(2969) 评论(1) 推荐(0) 编辑
摘要: 如果处理的是面向连接的网络服务(SOCK_STREAM或SOCK_SEQPACKET),在开始交换数据以前,需要在请求服务的进程套接字(客户端)和提供服务的进程套接字(服务器)之间建立一个连接。客户端可以用connect建立一个连接。#include int connect(int sockfd, const struct sockaddr *addr, socklen_t len);返回值:若成功则返回0,出错则返回-1在connect中所指定的地址是想与之通信的服务器地址。如果sockfd没有绑定到一个地址,connect会给调用者绑定一个默认地址。当连接一个服务器时,出于一些原因,连接可 阅读全文
posted @ 2014-02-25 08:04 ITtecman 阅读(1503) 评论(0) 推荐(0) 编辑
摘要: 在学习用套接字做一些有意义的事情之前,需要知道如何确定一个目标通信进程。进程的标识有两个部分:计算机的网络地址可以帮助标识网络上想与之通信的计算机,而服务可以帮助标识计算机上特定的进程。1、字节序运行在同一台计算机上的进程相互通信时,一般不用考虑字节的顺序(字节序),字节序是一个处理器架构特性,用于指示像整数这样的大数据类型的内部字节顺序。图16-1显示一个32位整数内部的字节是如何排序的。 图16-1 32位整数内部的字节序如果处理器架构支持大端(big-endian)字节序,那么最大字节地址对应于数字最低有效字节(LSB);小端(little-endian)字节序则相反:数字最低字节对应于 阅读全文
posted @ 2014-02-24 21:14 ITtecman 阅读(1225) 评论(0) 推荐(0) 编辑
摘要: 套接字是通信端点的抽象。与应用程序要使用文件描述符访问文件一样,访问套接字也需要套接字描述符。套接字描述符在UNIX系统是用文件描述符实现的。事实上,许多处理文件描述符的函数(如read和write)都可以处理套接字描述符。 要创建一个套接字,可以调用socket函数。 #include int socket(int domain, int type, int protocol);返回值... 阅读全文
posted @ 2014-02-24 15:23 ITtecman 阅读(4306) 评论(0) 推荐(0) 编辑
摘要: 网络进程间通信(network IPC):不同计算机(通过网络相连)上运行的进程相互通信的机制。 套接字网络IPC接口:进程能够使用该接口和其他进程通信。通过该接口,其他进程运行位置是透明的,它们可以在同一台计算机上也可以在不同的计算机上。实际上这正是套接字接口的目标之一:同样的接口既可以用于计算机间通信又可以用于计算机内通信。 本篇博文内容摘自《UNIX环境高级编程》(第2版),仅作个... 阅读全文
posted @ 2014-02-24 13:51 ITtecman 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 下面详细说明客户进程和服务器进程的某些属性,这些属性受到它们之间所使用的IPC类型的影响。最简单的关系类型是使客户调用fork然后调用exec执行所希望的服务器进程。在fork之前先创建两个半双工管道使数据可在两个方向传输。http://www.cnblogs.com/nufangrensheng/p/3561379.html中的图15-8是这种形式的一个例子。被执行的服务器程序可能是设置用户ID的程序,这使它具有了特权。服务器进程查看客户进程的实际用户ID就可以决定客户进程的身份。(回忆http://www.cnblogs.com/nufangrensheng/p/3510821.html, 阅读全文
posted @ 2014-02-24 13:38 ITtecman 阅读(1461) 评论(0) 推荐(0) 编辑
上一页 1 ··· 18 19 20 21 22 23 24 25 26 ··· 59 下一页