【python】网络编程socket TCP UDP

news/2024/4/30 0:15:45/文章来源:https://blog.csdn.net/weixin_38009144/article/details/137075265

文章目录

  • socket
    • 常用方法
  • TCP
    • 客户端
    • 服务器
  • UDP
    • 客户端
    • 服务器

网络编程就是实现两台计算机的通信

互联网协议族 即通用标准协议,任何私有网络只要支持这个协议,就可以接入互联网。

socket

socke模块的socket()函数

import socketsock = socket.socket(Address Family, type)

参数说明:

  1. Address Family:
    指定套接字家族(Address Family),可以是以下之一:
    • socket.AF_INET:IPv4 地址族。
    • socket.AF_INET6:IPv6 地址族。
    • socket.AF_UNIX:UNIX 地址族,用于在同一台机器上的进程间通信。
  2. type:
    指定套接字类型,可以是以下之一:
    • socket.SOCK_STREAM:流式套接字,提供面向连接的、可靠的字节流服务,使用 TCP 协议。
    • socket.SOCK_DGRAM:数据报套接字,提供无连接的数据报服务,使用 UDP 协议。
    • socket.SOCK_RAW:原始套接字,允许您访问底层协议。
  3. proto:
    指定协议编号,通常可以省略。如果 type 参数提供了协议类型,那么这个参数通常设置为 0。

常用方法

  1. bind(address):
    将套接字绑定到指定的地址。address 参数是一个元组,包含主机名和端口号。
  2. listen(backlog):
    开始TCP监听传入的连接请求。backlog 参数指定在拒绝连接之前,可以挂起的最大连接数量。该值至少为1,大部分应用程序为5就可以了。
  3. accept():
    接受传入的连接【阻塞式】,返回一个新的套接字对象和连接的地址。通过这个套接字对象,您可以与客户端进行通信,发送和接收数据。这通常在服务器端使用。
  4. connect(address):
    连接到指定的地址。address 参数是一个元组,包含远程主机的主机名和端口号。连接出错,返回socket.error
  5. send(data):TCP
    发送数据到已连接的套接字。data 参数是要发送的字节串。返回值是发送的字节数量。
  6. sendto(data, address):UDP
    这个方法用于向指定的地址发送数据。data 参数是要发送的字节串,address 参数是一个元组,包含目标主机的地址和端口号。
  7. recv(bufsize):TCP
    接收套接字上的数据。bufsize 参数指定要接收的最大字节数。返回值是字符串形式的数据
  8. recvfrom(bufsize):UDP
    这个方法用于从套接字接收数据,并返回一个包含接收的数据和发送方地址的元组。bufsize 参数指定要接收的最大字节数。返回值是(data,address)
  9. close():
    关闭套接字连接。
  10. sendall(data):
    完整地发送所有数据到已连接的套接字,确保所有数据都被发送。与 send() 方法不同,它会一直发送直到所有数据发送完毕。
  11. recv_into(buffer[, nbytes]):
    将数据读取到一个缓冲区中。buffer 参数是一个可写的字节数组或可写的类似缓冲区的对象。
  12. setsockopt(level, optname, value):
    设置给定套接字选项的值。level 参数指定选项的级别,optname 指定选项的名称,value 指定要设置的值。

TCP data是字节串,不是字符串
需要先将字符串转换为字节串,然后再传递给 send() 方法。可以通过调用字符串对象的 encode() 方法将字符串编码为字节串

socket.send("hi".encode())

接收的字节串转换为字符串打印,decode() 方法将字符串编码为字节串

socket.recv().decode()

TCP

在这里插入图片描述

服务端
客户端

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_1027451.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

推动制药行业数字化转型:基于超融合架构的MES一体机解决方案

随着中国对信息化重视程度的不断加深,制药行业作为国民经济的重要支柱之一,也在积极寻求通过数字化手段提升产业效率与产品质量。自党的十六大提出“以信息化带动工业化”的战略以来,制药业的这一转型探索尤为迫切。 在现代制药生产中&#…

scala-idea环境搭建及使用

环境搭建 创建一个新项目,选择maven工程 点击next,写入项目名,然后finish 注意:默认下,maven不支持scala的开发,需要引入scala框架,右键项目点击-》add framework pport....,在下图…

基于java+SpringBoot+Vue的书籍学习平台设计与实现

基于javaSpringBootVue的书籍学习平台设计与实现 开发语言: Java 数据库: MySQL技术: SpringBoot MyBatis工具: IDEA/Eclipse、Navicat、Maven 系统展示 前台展示 后台展示 系统简介 整体功能包含: 书籍学习平台是一个基于Internet的在线学习资源平台&#xf…

Apache Hive的基本使用语法(二)

Hive SQL操作 7、修改表 表重命名 alter table score4 rename to score5;修改表属性值 # 修改内外表属性 ALTER TABLE table_name SET TBLPROPERTIES("EXTERNAL""TRUE"); # 修改表注释 ALTER TABLE table_name SET TBLPROPERTIES (comment new_commen…

音视频开发Day01

备注 ffmpeg 库相关函数记忆 FFmpeg 库简介 FFmpeg一共包含8个库: avcodec:编解码(最重要的库) avformat:封装格式处理。 avfilter:滤镜特效处理 avdevice:各种设备的输入输出。 avutil:工具库(大部分库都需要这个库的支持)。 postproc:后加工。 swresample:音频采样数据格式…

一分钟开服 《幻兽帕鲁》游戏专属服务器by京东云主机

使用京东云服务器搭建幻兽帕鲁Palworld游戏联机服务器教程,非常简单,京东云推出幻兽帕鲁镜像系统,镜像直接选择幻兽帕鲁镜像即可一键自动部署,不需要手动操作,真正的新手0基础部署幻兽帕鲁,阿腾云atengyun.…

OSCP靶场--pyLoader

OSCP靶场–pyLoader 考点(信息收集CVE-2023-0297) 1.nmap扫描 ┌──(root㉿kali)-[~/Desktop] └─# nmap -Pn -sC -sV 192.168.178.26 --min-rate 2500 Starting Nmap 7.92 ( https://nmap.org ) at 2024-03-28 09:14 EDT Nmap scan report for 192.168.178.26 Host is up…

基于Python的电商特产数据可视化分析与推荐系统

温馨提示:文末有 CSDN 平台官方提供的学长 QQ 名片 :) 1. 项目简介 利用网络爬虫技术从某东采集某城市的特产价格、销量、评论等数据,经过数据清洗后存入数据库,并实现特产销售、市场占有率、价格区间等多维度的可视化统计分析,并…

关于使用vscode搭建c/c++编程环境

目录 关于使用vscode搭建c/c编程环境一、前言二、安装 IDE 二、安装TDM-GCC安装三、安装C/C环境四、编写代码并进行编译 关于使用vscode搭建c/c编程环境 一、前言 一直觉得vscode是生产强有力的生产工具,基于此,做一篇学习笔记进行记录。 二、安装 ID…

Prometheus +Grafana +node_exporter可视化监控Linux虚机

1、介绍 待补充 2、架构图 待补充 Prometheus :主要是负责存储、抓取、聚合、查询方面。 node_exporter :主要是负责采集物理机、中间件的信息。 3、搭建过程 配置要求:1台主服务器 n台从服务器 (被监控的linux虚机&am…

WPF自定义Panel:让拖拽变得更简单

在 WPF 应用程序中,拖放操作是实现用户交互的重要组成部分。通过拖放操作,用户可以轻松地将数据从一个位置移动到另一个位置,或者将控件从一个容器移动到另一个容器。然而,WPF 中默认的拖放操作可能并不是那么好用。为了解决这个问…

uniApp使用XR-Frame创建3D场景(7)加入点击交互

上篇文章讲述了如何将XR-Frame作为子组件集成到uniApp中使用 这篇我们讲解如何与场景中的模型交互&#xff08;点击识别&#xff09; 先看源码 <xr-scene render-system"alpha:true" bind:ready"handleReady"><xr-node><xr-mesh id"…

【已修复】iPhone13 Pro 长焦相机水印(黑斑)修复 洗水印

iPhone13 Pro 长焦相机水印&#xff08;黑斑&#xff09;修复 洗水印 问题描述 iPhone13 Pro 后摄3倍相机有黑色斑点&#xff08;水印&#xff09;&#xff0c;如图所示&#xff0c; 后摄相机布局如图所示&#xff0c; 修复过程 拆机过程有风险&#xff0c;没有把握最好不要…

MySQL学习笔记------函数

目录 函数 字符串函数 数值函数 函数 指一段可以直接被另一段程序调用的程序或代码 字符串函数 MySQL中内置了很多字符串函数&#xff0c;常用如下&#xff1a;select 函数 concat(s1,s2,s3,...,sn) 字符串拼接&#xff0c;将s1,s2,...,sn拼接成一个字符串 #字符串拼…

C/C++语言学习路线: 嵌入式开发、底层软件、操作系统方向(持续更新)

初级&#xff1a;用好手上的锤子 1 【感性】认识 C 系编程语言开发调试过程 1.1 视频教程点到为止 1.2 炫技视频看看就行 1.3 编程游戏不玩也罢 有些游戏的主题任务就是编程&#xff0c;游戏和实际应用环境有一定差异&#xff08;工具、操作流程&#xff09;&#xff0c;在…

火车头通过关键词采集文章的原理

随着互联网信息的爆炸式增长&#xff0c;网站管理员和内容创作者需要不断更新和发布新的文章&#xff0c;以吸引更多的用户和提升网站的排名。而火车头作为一款智能文章采集工具&#xff0c;在这一过程中发挥着重要作用。本文将探讨火车头如何通过关键词采集文章&#xff0c;以…

康耐视visionpro-CogCaliperTool工具详细说明

CogCaliperTool功能说明: 卡尺工具,用于测量距离 CogCaliperTool操作说明: ①.打开工具栏,双击或点击鼠标拖拽添加CogCaliperTool ②.添加输入图像,右键“链接到”或以连线拖拽的方式选择相应输入源 ③.拖动屏幕上的矩形框到需要测量的位置。卡尺的搜索框角度与边缘不平…

React系列之合成事件与事件处理机制

文章目录 React事件处理机制原生事件的事件机制事件代理&#xff08;事件委托&#xff09; 合成事件使用合成事件目的合成事件原生事件区别事件池 原生事件和React事件的执行顺序e.stopPropagation() React17事件机制的修改 React事件处理机制 react 事件机制基本理解&#xf…

有效的数独-java

题目描述: 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 &#xff0c;验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。&#xff08;请参考示例图&#…

什么是RISC-V?开源 ISA 如何重塑未来的处理器设计

RISC-V代表了处理器架构的范式转变&#xff0c;特点是其开源模型简化了设计理念并促进了全球community-driven的开发。RISC-V导致了处理器技术发展前进方式的重大转变&#xff0c;提供了一个不受传统复杂性阻碍的全新视角。 RISC-V起源于加州大学伯克利分校的学术起点&#xff…