#信息网络传播视听节目许可证

网络IPC:套接字之非阻塞和异步I/O

通常,recv函数没有数据可用时会阻塞等待。同样地,当套接字输出队列没有足够空间来发送消息时函数send会阻塞。在套接字非阻塞模式下,行为会改变。在这种情况下,这些函数不会阻塞而是失败,设置errno为EWOULDBLOCK或者EAGAIN。当这些发生时,可以使用poll或select来判断何时能接收或者传输数据。在S...

网络IPC:套接字之带外数据

带外数据(Out-of-banddata)是一些通信协议所支持的可选特征,允许更高优先级的数据比普通数据优先传输。即使传输队列已经有数据,带外数据先行传输。TCP支持带外数据,但是UDP不支持。套接字接口对带外数据的支持,很大程度受TCP带外数据具体实现的影响。TCP将带外数据称为“紧急”数据(“urgent”data...

网络IPC:套接字之套接字选项

套接字机制提供两个套接字选项接口来控制套接字的行为。一个接口用来设置选项,另一个接口允许查询一个选项的状态。可以获取或设置的三种选项:(1)通用选项,工作在所有套接字类型上。(2)在套接字层次管理的选项,但是依赖于下层协议的支持。(3)特定与某协议的选项,为每个协议所独有。SingleUNIXSpecification...
代码星球 ·2021-02-21

网络IPC:套接字之数据传输

既然将套接字端点表示为文件描述符,那么只要建立连接,就可以使用read和write来通过套接字通信。通过在connect函数里设置对方地址,数据报套接字也可以“连接”。在套接字描述符上采用read和write是非常有意义的,因为可以传递套接字描述符到那些原先设计为处理本地文件的函数。而且可以安排传递套接字描述符到执行程...

网络IPC:套接字之建立连接

如果处理的是面向连接的网络服务(SOCK_STREAM或SOCK_SEQPACKET),在开始交换数据以前,需要在请求服务的进程套接字(客户端)和提供服务的进程套接字(服务器)之间建立一个连接。客户端可以用connect建立一个连接。#include<sys/socket.h>intconnect(ints...

网络IPC:套接字之寻址

在学习用套接字做一些有意义的事情之前,需要知道如何确定一个目标通信进程。进程的标识有两个部分:计算机的网络地址可以帮助标识网络上想与之通信的计算机,而服务可以帮助标识计算机上特定的进程。1、字节序运行在同一台计算机上的进程相互通信时,一般不用考虑字节的顺序(字节序),字节序是一个处理器架构特性,用于指示像整数这样的大数...
代码星球 ·2021-02-21

网络IPC:套接字之套接字描述符

套接字是通信端点的抽象。与应用程序要使用文件描述符访问文件一样,访问套接字也需要套接字描述符。套接字描述符在UNIX系统是用文件描述符实现的。事实上,许多处理文件描述符的函数(如read和write)都可以处理套接字描述符。要创建一个套接字,可以调用socket函数。#include<sys/socket.h&g...
代码星球 ·2021-02-21

网络IPC:套接字

网络进程间通信(networkIPC):不同计算机(通过网络相连)上运行的进程相互通信的机制。套接字网络IPC接口:进程能够使用该接口和其他进程通信。通过该接口,其他进程运行位置是透明的,它们可以在同一台计算机上也可以在不同的计算机上。实际上这正是套接字接口的目标之一:同样的接口既可以用于计算机间通信又可以用于计算机内...
代码星球 ·2021-02-21

进程关系之网络登录

通过串行终端登录至系统和经由网络登录至系统两者之间的主要(物理上的)区别是:通过网络登录时,终端和计算机之间的连接不是点对点连接。在这种情况下,login只是一种可用的服务,这与其他网络服务(例如FTP或SMTP)的性质相同。在终端登录中,init知道哪些终端设备可用来进行登录,并为每个设备生成一个getty进程。但是...
代码星球 ·2021-02-21

系统数据文件和信息之时间和日期例程

由UNIX内核提供的基本时间服务是计算自国际标准时间公元1970年1月1日00:00:00以来经过的秒数。这种秒数是以数据类型time_t表示的。我们称它们为日历时间。日历时间包括时间和日期。UNIX在这方面与其他操作系统的区别是:(a)以国际标准时间而非本地时间计时;(b)可自动进行转换,例如变换到夏时制;(c)将时...

系统数据文件和信息之系统标识

POSIX.1定义了uname函数,它返回与当前主机和操作系统有关的信息。#include<sys/utsname.h>intuname(structutsname*name);返回值:若成功则返回非负值,若出错则返回-1通过该函数的参数向其传递一个utsname结构的地址,然后该函数填写此结构。POSIX...

系统数据文件和信息之登录账户记录

大多数UNIX系统都提供下列两个数据文件:utmp文件,它记录当前登录进系统的各个用户;wtmp文件,它跟踪各个登录和注销事件。在V7中,每次写入这两个文件中的是包含下列结构的一条二进制记录:structutmp{charut_line[8];/*ttyline:"ttyh0","ttyd0","ttyp0",...*...

系统数据文件和信息之其他数据文件

在日常操作中,UNIX系统还使用很多其他文件。例如,BSD网络软件有一个记录各网络服务器所提供服务的数据文件(/etc/services),有一个记录协议信息的数据文件(/etc/protocols),还有一个则是记录网络信息的数据文件(/etc/networks)。一般情况下,对于每个数据文件至少有三个函数:(1)g...

系统数据文件和信息之附加组ID

4.2BSD引入了附加组ID(supplementarygroupID)的概念。我们不仅可以属于口令文件记录项中组ID所对应的组,也可属于多达16个另外的组。文件访问权限检查相应被修改为:不仅将进程的有效组ID与文件的组ID相比较,而且也将所有附加组ID与文件的组ID进行比较。常量NGROUPS_MAX规定了附加组ID...

系统数据文件和信息之组文件

UNIX组文件(POSIX.1称其为组数据库)包含了表6-3中所示的字段。这些字段包含在<grp.h>中所定义的group结构中。               ...
首页上一页...910111213...下一页尾页