网络IPC:socket引入

      最后更新:2022-05-07 20:58:05 手机定位技术交流文章

      这是首次在网络进程之间引入网络对处理通信(网络IPC)和tweak对线通信界面。此接口被该程序用于与其他进程进行沟通。如果他们在同一或其他机器上。计算机间通信和计算机内通信都可使用同样的界面。也可用于计算机之间的通信。

      socket函数

      为了理解这一功能,我们必须首先理解与这一功能相连的若干想法,我们首先必须理解一些想法。

      “插座”一词表达了几个概念:


      网络通讯“IP地址+TCP或UDP港口号”中的少数程序之一,在TCP/IP协议“IP”中
      Socket 定义为地址加上端口号。


      在TCP协议中,两个连接的流程中,每个进程都有一个插座,指定指定在 TCP 协议中,两个插座组成
      套接字配对是唯一指定的连接。 因为套接字意味着“ 插头 ”, 它用来定义网络连接 。
      接的一对一关系。


      TCP/IP协议最初在BSD UNIX上实施,为TCP/IP协议创建套接合应用层编程界面。
      API。

      TCP 协议是Socket API最著名的功能接口。

      在 UNIX 上, 套接字描述符被视为文件描述符 。

      它可以与阅读、写作等相似对待。

      嗨,请输入文件描述符 以便传送

      耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 耶 和华

      内核的TCP/IP军营负责包装和拆卸。

      2.socket API

      大致过程:

      服务器端

      捆绑和插口和端口监听能力,等待客户连接。

      客户连接服务器已经连接,握手已经三次完成,通信已经建立。见上一条。

      接受创建新文件描述并返回它 。

      之后处理数据。

      关闭文件描述、断开和四次握手。

      服务器端可能恢复接受,而不是关闭。

      3.网络字节序

      这才是最伟大的结局。 (可自行搜索)

      网络传输用的大端序

      根据TCP/IP协议,网络数据流必须遵循一个大字字节顺序,即低地址字节,类似于上一节中的UDP
      地址0-1是以图表格式表示的16位位端口号,如果该端口号为100(0x3e8),地址0x03,
      地址是 0xe8 表示在寄送主机的缓冲区, 0x03, 然后是 0xe8, 16应该低。
      低位址为 0x03, 高位址为 0xe8。 但是, 如果发件人是一个小字节序列, 16 则被解释为 0xe803, 不是100 。

      因此,在发件人主机能够将100输入缓冲区之前,必须转换字节订单。同样地,如果宿主是一个字节,对于字节序列转换,也使用16位数源端口号。如果主机有很长的字节序列,发送或接收不需要转换。同理,32位IP地址还将另外考虑到网络字节和主机字节。

      此外,您自己的用户数据不必处理大小和终端问题。

      最后,数据由程序在小端直接解析。

      #include <arpa/inet.h>
      uint32_t htonl(uint32_t hostlong);
      uint16_t htons(uint16_t hostshort);
      uint32_t ntohl(uint32_t netlong);
      uint16_t ntohs(uint16_t netshort);


      h 表示主机, n 表示网络工作, l 表示32个长整数, s 表示16个短整数。
      如果主机是一个微小字节序列,这些操作将把参数转换为匹配大小端和返回;否则,这些函数不旋转程序,而是一个小字节序列,这些操作将这些参数转换为匹配大小端和返回端;否则,这些函数不旋转。
      返回当前状态的参数 。

      以字符串的形式考虑 IP 。

      字符串必须转换为二进制 IP 地址, 二进制 IP 地址必须转换为 字符串必须转换为 二进制 IP 地址必须转换为 二进制 IP 地址, 二进制 IP 地址必须转换为 字符串 。

      SocketAdder 数据结构

      现在,我们可以描述这个功能。

      参数解释

      Locket 给了您一个新的文件配置文件 。

      这是逃生通道 包裹到底是什么?

      域( 域) 管辖通信属性, 如地址格式 :
      大多数用于生产插座的规程,包括AF_INET,使用TCP或UDP进行传输和IPv4地址。
      AF_INET6 与前一个地址相同, 但它是一个 IPv6 地址 。
      AF_UNIX是Unix和Linux系统使用的本地协议,经常当客户和服务器在同一台和同一计算机上时使用。


      type:
      SOCK_STREAM 协议是一个基于字节的链接, 其顺序、 可靠且数据完整。 它是最常用的套接字类型, 并使用 TCP 传输 。
      SOCK_DGRAM 是一个未连接的固定长度传输电话。 协议不可信, 因此 UDP 用来连接它 。
      SOCK_SEQPACKET 是一个双线、可靠的连接, 发送固定长度数据包传输。 我们必须完成此包 。
      接受才能进行读取。
      SOCK_RW, 套接字型, 启用单一网络连接, 并使用IPCMP公共协议 。 (ping, traderoute 利用合同)
      SOCK_RDM是大多数操作系统中很少使用和未实现的类型,可进入数据链层使用,但不能确保数据包序列。

      protocol:
      0 默认协议

      返回值:
      成功时返回新的文件配置文件, 无法返回 1, 并设置错误

      参考:

      APUE方案及其投石勒系统

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/23941.html

          热门文章

          文章分类