TCPIP网络编程(一)

      最后更新:2022-05-03 03:31

      这个博客系列将用来追踪用于研究TCP/IP互联网编程的笔记。
      首先,代码,这是服务器的代码

      下面是客户端的代码

      创建socket

      对于Linux系统中的每件事都是一份文件 因此我们要从零开始 建立我们自己的文件socket我们建一个,因为我们可以用它做各种奇怪的事情, 因为有报纸。socket文件先

      socket函数返回_描述符,这是一个描述类型。 aint整形数字,在Linux这是和系统有联系的电话号码 用来描述目前的状况socket的一个暗号。

      描述socket

      有了这个socket在此之后,我们必须向操作系统通报该文件的某些方面。socket类似于通知系统,我要设计一个mp3文件还是一个txt下面的代码告诉系统它有多大 和它能容忍什么

      我们把文件清空,然后通知系统与文件有关的内容。

      • AF_INETIPv4 Socket 是网络协议套接字类型 。
      • htonl(INADDR_ANY)这里告诉系统,这个socket选中的 IP 正在监听所有 Internet 卡片 。0.0.0.0的地址
      • htons(atoi(argv[1]))我们会通知系统我们监听的是哪个港口 我们会找到港口

      其中htons和htons描述将本地字符串字节顺序转换为网络字节顺序,以避免本地大小和终端储存问题造成的错误。

      进行绑定

      您可以将普通文件留在创建后的位置。 毕竟, 如果您需要它, 您可以只写数据 。socket这不是你的典型文件。它需要网络的数据, 因此我们必须一步一步地做, 告诉操作系统我拥有这个。socket需要从xxIP,yy Port 听到一些东西, 这样当数据从给定的地址端口到达时, 系统就会知道这是从这里得到的。socket这里。
      我们使用bind函数进行绑定

      我们可以使用这一功能连接操作系统并接收数据。

      开始监听

      等我们完事了,我们得把它处理掉socket去监听丫。bind但我只是把港口绑起来..socket这个港口与它无关。 是否有数据在路上?
      使用listen听听我们设置的港口

      当任何因这一程序而抵达时,socket这个问题可以适当查明和处理。

      受理连接

      对于一个socket而言,不需要用于具体联系。在多数情况下,可以接受大量连接。那么,我们如何区分这两种联系的区别呢?和各种关系接触如何?因此,需要有一个职能才能取得这些联系。每个链接用单独的符号表示。方便我们进行处理。因此,就有了accept函数

      显然,该系统承认各种连接为文件,并产生文件描述。 基于这种不同的文件描述,我们可以区分不同连接。
      注意,当socket当接收不到连接时,它将被屏蔽,直到接收到连接或发生故障。

      连接服务器

      客户端的代码基本上与服务器的代码相同, 但在此会出现新的函数 。 因为我需要主动查找服务器, 客户端的代码需要连接动作 。

      通过connect我们可以使用此函数连接到所选服务器, 并与所选服务器进行通信 。

      关闭socket

      你必须记住关闭任何开放的操作 否则会有大问题!

      这是一个相当基本的功能 已经传给了我们socket这是一个描述符, 系统可以使用它 。socket
      下次有东西被拔掉

      写入数据

      随着网络连接,数据传输是不可避免的,我们开始吧socket当它是一个文件, 它被用来写数据。write函数

      此函数的返回值有点不寻常; 它是一个元数据类型, 它与 C 语言的语言属性相关, C 中未显示 。int, long short对这些数据类型和操作系统的规模进行预防,其规模从原来的16个增加到目前的64个,如果我们直接使用这些数据类型和操作系统,我们可能会遇到问题。int可能需要对以下编码和某一类情况下的系统进行连续调整。int尽管它不能满足我们的需要,但我们利用它。typedef还提供了进一步说明,以具体说明各种大小和公式。

      读取数据

      阅读数据的过程与生成数据的过程非常相似,一切是标准的。Linux文件操作

      我们可以读取使用此函数所需的数据大小 。

      总结

      概括地说,做一个基本的socket虽然程序可能耗时,但还是相当直截了当,以下阶段可以概述。

      • 第一步:调用socket创建一个socket
      • 第二步:调用bind此函数将IP地址和端口号连接到操作系统。
      • 第三步:调用listen接受请求的状态已经开始。
      • 第四步:调用accept函数受理连接请求
        • 客户端需要一个connect函数来连接到服务器
      • 利用write和read进行数据的读写操作
      • 关闭socket

      本文由 在线网速测试 整理编辑,转载请注明出处。

          热门文章

          文章分类