python网络编程与使用TCP协议实现聊天室

      最后更新:2022-03-28 11:20:34 手机定位技术交流文章

      网络编程

      网络编程主要涉及将信息从发送者传送给接收者,中间传输是实际线路的函数。

      互联网编程中最重要的方面是通过预先确定的协议在发送者最后的信息组装。货包在接收端按照商定的安排进行评估。这是政府有史以来第一次能够获得必要的信息。达到通信的目的。数据包的组装是中间最关键的因素。数据包的过滤,数据包的捕获,数据包的分析,然后,当然,我们会做一些更多 在最后一天。编码、开发工具、数据库、服务器配置和站点设计都是编程的例子。

      套接字对网络通信至关重要,同时也是应用程序和网络协议之间的接口。套接字由 IP 和 端口号组成。

      TCP和UDP主导网络级通信,数据传输的基本单位是数据包,网络级通信的关键是通过网络应用程序提供由网络级协议密封的成套数据,使计算机对话成为可能。

      Socket

      套接字是网络协议的一种类型(例如, TCP/IP. TCP/IP)。ICMP/IP,例如,UDP/IP。 软件包提供了一个使用现有便携式标准对象的上下网络应用程序提供者。它们使该程序得以得到承认和联系。如发送和接受数据。为了建立通信通道,每个网络端点与一个合成对象连接至关重要。

      在应用层面,插座是连接TCP/IP社区的中间软件的抽象层。它是一组接口。在设计模式中,事实上,索克特是一个正面模型。复杂的TCP/IP组隐藏在Socket界面下。对用户来说,所需要的只是一套简单的接口。让我们请Socket帮我们整理数据以符合指定的协议。所以,我们不需要了解更多关于tcp/udp协议的信息。插座已经为我们关闭了程序只需要遵守索科特的指南当然,协议是基于tcp/udp标准。

      在这里插入图片描述
      需要六步才能连接到一个共同的插座Socket.Socket () 生成套接字对象, s. 连接连接地址与套接字对象, s. 听, 听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,听,我不知道你在说什么 S. Recv 通讯数据处理技术 S. C. Close the link.

      python scoket

      Python 支持两层网络接入:

      低水平网络服务支持基本的Socket, 它提供正常的 BSD Sockets API 和进入底层操作系统 Socket 接口功能。
      SocketServer是一个高级别网络服务模块,提供中央服务器级,简化网络服务器的建设。

      在 Python 中,套接字() 方法在套接字库中使用以下语法创建 :
      socket.socket(family=AF_INET, type=SOCK_STREAM, proto=0, fileno=None)
      参数:
      socket.socket(socket.AF_INET,socket.SOCK_STREAM)创建含有所提供地址、字符串类型和协议号的新 Socket 。

      family为指定的地址族:

      socket.AF_UNIX:只可用于在单一的Unix系统内进行进程间通信。

      socket.AF_INET:服务器之间的网络连接(IPv4协议 TCP 和 UDP)ipv4, 默认为此

      socket.AF_INET6IPv6 服务器之间的网络连接

      type对于选中的套接字类型 :

      socket.SOCK_STREAM默认情况下, TCP 已连接 。

      socket.SOCK_DGRAM未连接的UDP UDP

      socket API
      抱歉, 但套接字. coket (..) 可以生成套接字对象 。套接字对象是 TCP 或 UDP 的数据包装入对象。数据包由主机通过对象发送。因此,在对话的两端都需要套接字对象。服务提供者是数据的接收者之一。其中一方是数据发送客户。用于创建服务和客户应用程序的API通过套接字对象提供。

      方法 描述
      服务器API 服务器端套接字
      socket.bind() 将地址(主机、端口)绑在索克特,然后在 " AF_INET " 标题下,地址以丘体(东道方、港口)的形式写成。用于服务端,绑定监听的端口,可以收集所有的管道。此服务仅被接受 。
      socket.listen() 启动 TCP 监听。 此参数决定操作系统在拒绝连接前可以中止的最大连接次数。 值必须至少是一个, 大多数应用程序设置为 5 。
      socket.accept() 接受函数返回一组两个项目(fd,addr),表示被动接受 TCP 客户端连接,等待连接到达(阻塞),客户请求没有被阻止。fd, addr = self._accept()第一部分是服务器用来连接客户端的新套接字对象。 第二部分提供客户端的地址和端口信息。
      客户端API 客户端套接字
      socket.connect() 参数的结构为 tuple (主机名、端口) 和 返回套接字。 错误错误。 数组的第一个参数是 ip, 可能是 ip 或 域名, 第一个数字是 portn 号, 是 绑带 。
      socket.connect_ex() 当发生错误时,连接 () 方法的扩展版本会给出错误代码, 而不是丢弃异常点 。
      公共API 插座功能可供全体公众使用。
      socket.recv() 数据会以字符串形式以两个参数返回, 并会决定接收数据的最大数量。 有关国旗提供的信息的更多信息通常并不重要 。
      socket.send() 发送TCP数据,将参数发送到连接的 Socket, 作为 TCP 数据包的信封 。您要发送的字节数已返回 。参数只能是字节,为精密语言保留了额外类别。计算机无法解析,其它种类则转换成编码为“ utf-8” 的字节以传送 。
      socket.sendall() TCP 完整数据传输和分布。 将字符串中的数据发送到连接的合成中, 但试图在返回前传输全部数据 。 成功返回无, 失败会丢弃异常点 。
      socket.recvfrom() 接收 UDP 数据的方式与 recrov () 一样, 但返回一个值( 数据、 地址 ) 。 数据是一个包含收到的数据的字符串, 地址是数据传输的套接字地址。 在构建 scolket 时指定类型参数 。
      socket.sendto() 将 UDP 数据发送到套接字套, 地址是以提供远程地址的形式( ipaddr、 porter) 组成的组。 返回传输的字节值 。
      socket.close() 关闭套接字
      socket.getpeername() 返回连接到软件包的远程地址。 返回值通常是一个带( ipaddr、 porter) 。
      socket.getsockname() 返回 Socket 本身的地址。通常会返回部件( ipaddr、 porter) 。
      socket.setsockopt(level,optname,value) 设置指定软件包选项的值。
      socket.getsockopt(level,optname[.buflen]) 返回套接字选项的值 。
      socket.settimeout(timeout) 设置套套接字操作的超时时间, 即超时是一个以秒计的浮动点, 没有显示没有超时 。 通常, 当合成首次创建时, 时间段应该设定, 因为可以在连接操作中使用( 例如连接( () ) ) 。
      socket.gettimeout() 以秒数返回当前周期的值,如果不设置时段,则返回无值。
      socket.fileno() 返回套接字的文件描述符 。
      socket.setblocking(flag) 如果flag为0,这是该国历史上第一次能够这样做,但还未能做到。否则, 字符串应该设置为块模式( 默认值 ) 。非阻塞模式下,如果调用 recrov () 返回无结果,或者, Send () 无法快速传输数据 。然后,它将导致 。 错误的异常。
      socket.makefile() 创建一个与集连接的文件 。

      简单TCP案例
      服务端:

      客户端:

      TCP协议的三次握手要建立连接,客户必须发送初始连接请求,因此服务必须首先对客户进行访问。

      服务端运行结果:
      在这里插入图片描述

      客户端运行结果:
      在这里插入图片描述

      python聊天室

      服务器端程序

      客户端程序

      在这里插入图片描述

      参考资料:
      https://www.cnblogs.com/yunlong-study/p/9283529.html
      https://www.cnblogs.com/zhangyingai/p/7097922.html
      https://www.cnblogs.com/zhangxinqi/p/8243919.html
      http://www.runoob.com/python3/python3-socket.html

      UDP
      乌德普和 tcp相似,因为它们使一个州断开连接,不需要挖掘,而只是接收和提供数据。

      Udp协议仅仅发送和接收数据,如果接收端缺少Udp软件,数据就会丢失。
      在这里插入图片描述

      发送者是主机上的省,接收端同样是省,客户活跃,数据在服务端。

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

          热门文章

          文章分类