#UNIX

UNIX网络编程学习笔记:值-结果(value-result)参数

前言当把套接口地址结构传递给套接口函数时,总是通过指针来传递的,即传递的是一个指向结构的指针。结构的长度也作为参数来传递,其传递的方式取决于结构的传递方向:从进程到内核,还是从内核到进程。1、从进程到内核从进程到内核传递套接口地址结构的函数有3个:bind、connect和sendto,这3个函数的一个参数是指向套接口...

UNIX网络编程读书笔记:套接口地址结构

前言大多数套接口函数都需要一个指向套接口地址结构的指针作为参数。每个协议族都定义它自己的套接口地址结构。这些结构的名字均以“sockaddr_”开头,并以对应每个协议族的唯一后缀结束。IPv4套接口地址结构IPv4套接口地址结构通常也称为”网际套接口地址结构“,它以”sockaddr_in“命名,定义在头文件<n...

UNIX网络编程读书笔记:TCP输出、UDP输出和SCTP输出

TCP输出下图展示了应用进程写数据到TCP套接口的过程。每一个TCP套接口有一个发送缓冲区,我们可以用SO_SNDBUF套接口选项来改变这个缓冲区的大小。当应用进程调用write时,内核从应用进程的缓冲区中拷贝所有数据到套接口的发送缓冲区。如果套接口的发送缓冲区容不下应用程序的所有数据(或是应用进程的缓冲区大于套接口发...

UNIX网络编程读书笔记:图解TCP端口号和并发服务器

          图1TCP服务器在端口21上执行被动打开             &n...

UNIX网络编程读书笔记:端口号、套接口对和套接口

端口号端口号(portnumber):16位整数,用来区分不同的进程。服务器使用的端口号:TCP和UDP定义了一组众所周知的端口(well-knownport),用于标识众所周知的服务。客户端使用的端口号:通常使用短期存活的临时端口(ephemeralport)。这些端口号通常由传输层协议自动赋予客户。客户一般不关心其...

UNIX网络编程读书笔记:简介

认知套接口编程接口理解原始套接口(rawsocket)的概念 值得注意的是,客户和服务器是典型的用户进程,而TCP和IP协议则通常是系统内核协议栈的一部分。上图中在TCP和UDP之间留有间隙,用于指出应用程序可以绕过传输层而直接使用IPv4和IPv6,这称为原始套接口(rawsocket)。UNIX网络编程中...

UNIX/Linux网络编程基础:应用层协议简介

目录1、HTTP协议2、FTP协议3、TELNET协议4、NFS协议1、HTTP协议应用层协议HTTP协议是Web的核心。HTTP协议在Web的客户程序和服务器程序中得以实现,运行在不同系统上的客户程序和服务器程序通过交换HTTP消息彼此通信。HTTP协议定义数据格式,使得服务器和客户端通过协议进行数据交流。客户端和服...

UNIX/Linux网络编程基础:图解TCP/IP协议栈

目录1、主机到网络层协议:以太网协议2、IP协议3、网际控制报文协议(ICMP)4、传输控制协议(TCP)5、用户数据报文协议(UDP)6、流控制传输协议(SCTP)7、地址解析协议(ARP) 联网的各个终端之间能否进行交互的软件基础是网络协议栈,目前主流的网络协议栈是TCP/IP协议栈。1、主机到网络层协议...

高级进程间通信之UNIX域套接字

UNIX域套接字用于在同一台机器上运行的进程之间的通信。虽然因特网域套接字可用于同一目的,但UNIX域套接字的效率更高。UNIX域套接字仅仅复制数据;它们并不执行协议处理,不需要添加或删除网络报头,无需计算检验和,不要产生顺序号,无需发送确认报文。UNIX域套接字提供流和数据报两种接口。UNIX域数据报服务是可靠的,既...

UNIX标准化及实现之标准之间的冲突

就整体而言,这些不同的标准之间配合得相当好。但是我们也很关注它们之间的差别,特别是ISOC标准和POSIX.1之间的差别。ISOC定义了函数clock,它返回进程使用的CPU时间,返回值类型是clock_t。为了将此值变换成以秒为单位,将其除以在<time.h>头文件中定义的CLOCKS_PER_SEC。P...

UNIX标准化及实现之基本系统数据类型

历史上,某些UNIX系统变量已与某些C数据类型联系在一起。例如,历史上主、次设备号一直存放在一个16位的短整型中,8位表示主设备号,另外8位表示次设备号。但是,很多较大的系统需要用多于256个值来表示其设备号,于是,就需要有一种不同的技术。头文件<sys/types.h>中定义了某些与实现有关的数据类型,它...

UNIX标准化及实现之功能测试宏

在头文件中定义了很多POSIX.1和XSI的符号。但是除了POSIX.1和XSI的定义之外,大多数实现在这些头文件中也加上了它们自己的定义。如果在编译一个程序时,希望它只使用POSIX定义而不使用任何实现自己定义的限制,那么就需要定义常量_POSIX_C_SOURCE。所有POSIX.1头文件中都使用此常量。当定义该常...

UNIX标准化及实现之选项

POSIX.1的2001版,包括了ISOC标准所指定的各个函数。其接口分成了两类:必需接口和可选接口。可选接口按功能又进一步分成50个区。表1中按它们各自的选项代码总结了没有被弃用的编程接口。选项代码是由2-3个字符构成的字母缩写,以便标识属于各个功能区的接口。选项代码会突出显示手册相关页面上的文本,表明接口依赖于对特...
代码星球 代码星球·2021-02-21

UNIX标准化及实现之限制

前言UNIX系统实现定义了很多幻数和常量,其中有很多已被硬编码(关于硬编码和软编码:http://www.cnblogs.com/chenkai/archive/2009/04/10/1432903.html)进程序中,或用特定的技术确定。由于大量标准化工作的努力,已有若干种可移植的方法用以确定这些幻数和实现定义的限制...
代码星球 代码星球·2021-02-21

UNIX标准化及实现之POSIX标准可选头文件

POSIX标准定义的可选头文件头文件说明<aio.h>异步I/O<mqueue.h>消息队列<pthread.h>线程<sched.h>执行调度<semaphore.h>信号量<spawn.h>实时spawn接口<stropts.h>X...
首页上一页...23456...下一页尾页