基于VS2019 C++的跨平台(Linux)开发(1.6.2)——SOCKET网络编程

      最后更新:2022-03-26 23:29:23 手机定位技术交流文章

      我们今天在这里 学习如何编程 SOCKET网络 在学习网络的基础。

      利用VS2019 C++(1.6)开发变形(Linux)——联网基金会

      一、组 盘 概况

      • 伯克利学校创建了API功能标准Socket,这是一个网络通信方案,以促进通信进程的建设。
      • 套接字界面用于 Linux 的网络编程 。Socket 是一个独特的 IO, 也是标准 IO 。它还作为文件说明。完整的套接字有适当的描述[协 。本地地址,本地端口,远程地址,远程端口; 每个套件都有唯一的套件编号, 仅在本地使用 。由操作系统分配。

      二. 插座分类

      1 SOCK_STREAM-后来使用
      流体合成可提供可靠、相互联系的通信流动,采用TCP协议,确保数据交付的准确性和顺序。
      二、数据综合(数据综合)
      数据引入指定了一种不连接的服务,即以单个信息提供数据,这种服务是无序、不可靠和无误的。使用了数据报告协议UDP。
      3、原始套接字。
      最初的组合使得能够直接获取诸如IP或IPCMP等低层次协议,这些协议大多用于测试新的网络协议的执行情况。

      三、苏卡迪尔和索卡迪尔的结构

      这两类数据相同,可以相互翻译,尽管袜子交换机通常更方便。

      四. 基于流体的方案拟订程序

      五、详细步骤

      服务器

      1. 使用 Socket () 的初始化网络
      判断是否初始化成功
      创建结构体如下

      • 确定使用哪个协议簇
      • 系统访问本地 IP 地址: 在配置网络时, 使用自己的 IP 地址连接到服务器等其他客户端 。
      • 整数端口号( 使用 int_ addr () 折算)

      结构长度, 使用大小 ()
      2. 使用 bind () 约束
      裁决具有约束力的成功(由于失败:IP处理错误或港口号占用)

      3. 听 ()听 (听)听
      如果有客户端连接, 请倾听此 IP 和端口 。
      判断是否监听成功

      迄今为止,该网络尚未连接,只是网络接入准备就绪,以便一个死环保障服务器能够长期运行(Nx24h工作-等待客户访问)。

      4 () 接受( ) 正在等待客户连接到互联网 。
      返回的已接受fd 配置文件程序指定了已经连接的客户端 。如果客户没有连接( 没有呼叫连接 () ),接受一直阻碍它。我们不能回去接受。随后的代码无法执行 。在客户与互联网连接之前,不得要求客户采取进一步行动。(0和1的接受值分别反映标准输入、输出和错误报告;3是IO文件说明;4是网络频道)
      继续循环, 并在返回接受后等待下一个客户端 。

      5. 要读取数据,请使用叉子进程。
      读取每个客户端的分进程叉的信息 。
      子进程环路读取 () 读取客户端发送的信件到 buff, 并读过一次空字符串 。

      客户端

      1. 网络接入插座()准备

      • 该论点没有p和协议港口号,表明这是一个连接,具有约束力,而不是具有约束力的行动。
      • 定义结构体
      • 获取软件包、 IP 地址( 从服务器 IP 地址用inet_ addr () 翻译) 和端口号 。
      • 结构长度, 使用大小 ()

      2. 连接()方法连接

      • 判断是否连接成功
      • 死亡循环发生时 - 控制台输入

      3, 匹配服务器读写 ()
      每个客户都不干涉其他客户, 客户可以相互交流, 是的,但您必须等待服务器将服务器发送回 。

      五、函数原型

      UCMT 功能 - 阻塞功能

      功能
      TCP 服务器调用接受功能从完成的连接队列中获取下一个已完成的连接。 如果连接队列是空的, 程序会进入睡眠 。

      #include <sys/types.h>
      #include <sys/socket.h>
      int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);

      参数说明

      • Sockfd 是套接字系统返回的服务器端口插件描述符 。
      • 已连接的端点( 客户) 的协议地址由 adder 返回 。
      • Addrlen 表示结构长度( sockaddr_ in 用于硬化 sockaddr ) 。

      将连接的套接字描述符返回为返回值。

      六、示例

      启动三个不同的客户端, 并发送信息到服务器 。

      1、源码

      2. 注意和代码描述

      1. 服务器应利用其自己的IP地址建立一个网络频道,然后被动地等待客户连接,如下所示:

      例如,由于这一流行病的后果,我在找海底的热锅因为封校了出不去,另一方面,火炉店是开着的。因此,热锅商店起到被动服务器的作用,等待顾客进来吃热锅。我不会强迫你去上学的然后就有可能有访客到外头去拜访这与接受()方法相似。你一走进门就会被引诱到店里去没有人到门来或在外面等。因此,服务器是给别人的。它是被动的,而客户是主动的。如果客户没有到达服务器,他必须等待。

      端口号字节转换函数 - htons () - “ 主机到网络短”

      从主机字节顺序转换为网络字节顺序(2个未签名短短的字节) - 端口 655351万以下用于操作系统,根据定义,操作系统需要1万年;由于操作系统处于最极端的边缘,大小端顺序颠倒,没有转换顺序会出错

      3. inint_addr () 是转换 IP 地址格式的函数 。

      Linux 具有将地址中的长整数类型转换为点分数格式的函数。 Inet_addr () 可以将表示 IP 地址的整数字符串和点数转换为未签名的长整数类型 。

      4. 首先,在Linux下运行服务器。

      3、运行结果

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

          热门文章

          文章分类