Python (八)网络编程


程序员的公众号:源1024,获取更多资料,无加密无套路!

最近整理了一份大厂面试资料《史上最全大厂面试题》,Springboot、微服务、算法、数据结构、Zookeeper、Mybatis、Dubbo、linux、Kafka、Elasticsearch、数据库等等
获取方式: 关注公众号并回复 666 领取,更多内容持续奉上


Python 提供了两个级别访问的网络服务:

低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的全部方法。

高级别的网络服务模块 SocketServer, 它提供了服务器中心类,可以简化网络服务器的开发。

 socket()函数

socket.socket([family[, type[, proto]]])
  • family: 套接字家族可以是 AF_UNIX 或者 AF_INET
  • type: 套接字类型可以根据是面向连接的还是非连接分为SOCK_STREAMSOCK_DGRAM
  • proto: 一般不填默认为0.

bind()

绑定地址(host,port)到套接字, 在AF_INET下,以元组(host,port)的形式表示地址。
listen()开始TCP监听。backlog指定在拒绝连接之前,操作系统可以挂起的最大连接数量。该值至少为1
accept()被动接受TCP客户端连接,(阻塞式)等待连接的到来
connect()主动初始化TCP服务器连接,一般address的格式为元组(hostname,port)
recv()接收TCP数据,数据以字符串形式返回,bufsize指定要接收的最大数据量
send()发送TCP数据,将string中的数据发送到连接的套接字
sendall()完整发送TCP数据。将string中的数据发送到连接的套接字,但在返回之前会尝试发送所有数据
close()关闭套接字

服务端:

import socket
#创建套接字
server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#绑定地址
server_socket.bind(('localhost',8888))server_socket.listen(3)while True:socket,addr = server_socket.accept()print('连接地址: %s' % str(addr))#发送数据msg='你好,这里是Python socket通信'+ "\r\n"socket.sendall(msg.encode('utf-8'))#关闭连接socket.close()

客户端:

import socket# 创建 socket 对象
socket_client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 连接服务器
socket_client.connect(('localhost', 8888))# 接收服务端的数据
msg = socket_client.recv(1024)
#关闭连接
socket_client.close()print (msg.decode('utf-8'))#输出
你好,这里是Python socket通信


系列文章索引

Python (一) 操作Mysql

Python (二) 读写excel文件

Python (三) 读写csv文件

Python (四)读写word

Python (五) 处理图像

Python (六) 绘图 

Python(七)操作JSON 


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

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

相关文章

​sys --- 系统相关的形参和函数​

该模块提供了一些变量和函数。这些变量可能被解释器使用,也可能由解释器提供。这些函数会影响解释器。本模块总是可用的。 sys.abiflags 在POSIX系统上,以标准的 configure 脚本构建的 Python 中,这个变量会包含 PEP 3149 中定义的ABI标签。…

最新CRMEB商城源码开源版v5.2.2版本+前端uniapp

CRMEB开源商城系统是一款全开源可商用的系统,前后端分离开发,全部100%开源,在小程序、公众号、H5、APP、PC端都能用,使用方便,二开方便!安装使用也很简单!使用文档、接口文档、数据字典、二开文…

java中 map和 json 字符串 互转

依赖包&#xff1a; <dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId> </dependency>包&#xff1a; import com.fasterxml.jackson.core.JsonProcessingException; import com.fa…

鸿蒙(HarmonyOS)应用开发——保存应用数据(题目答案)

判断题 1.首选项是关系型数据库 错误(False) 2.应用中涉及到Student信息&#xff0c;如包含姓名&#xff0c;性别&#xff0c;年龄&#xff0c;身高等信息可以用首选项来存储。 错误(False) 3.同一应用或进程中每个文件仅存在一个Preferences实例。 正确(True) 单选题 …

边缘检测@获取labelme标注的json黑白图掩码mask

import cv2 as cv import numpy as np import json import os from PIL import Imagedef convertPolygonToMask(jsonfilePath):

探秘闭包:隐藏在函数背后的小秘密(上)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

LeetCode1143.最长公共子序列

这道题看完就大概知道要用动态规划&#xff0c;然后想想如何建立动态转移方程&#xff0c;就很简单了&#xff0c;我都感觉我不是想出来的&#xff0c;是根据直觉应该是这样的然后边想边写就出来&#xff0c;以下是我的代码&#xff1a; class Solution {public int longestCom…

【Java】线程池的创建

目录 ​编辑 一、什么是线程池 二、创建和使用 导入必要的包&#xff1a; 创建线程池&#xff1a; 提交任务给线程池执行&#xff1a; 自定义Runnable和Callable任务&#xff1a; 关闭线程池&#xff1a; 我的其他博客 一、什么是线程池 在Java中&#xff0c;线程池是…

使用qrcode实现微信二维码转网址链接

很多情况下&#xff0c;后端会返回一个微信二维码的地址&#xff1a; 但是我们并无法直接打开或者是展示该二维码&#xff0c;毕竟浏览器不认识weixin://xxx &#xff0c;只认识http://xxx 如果想要实现weixin://xxx 转化为http:// 的形式&#xff0c;可以使用第三方库&#x…

java.lang.ClassNotFoundException:javax.xml.bind.DatatypeConverter 报错解决

问题原因: 这有可能是因为SpringBoot项目结合jwt进行用户登录时出现的问题&#xff0c;因为jdk版本太高导致的 解决办法: 方法一: 降低jdk版本 检查JDK版本,如果你是JDK17版本,就降到JDK8版本 方案二:在meven中添加依赖 注意: 如果2.3.1的版本不生效,则使用2.3.0的版本 <…

C/C++ extern关键字

文章目录 extern 是一个关键字&#xff0c;用于在C和C中进行外部声明&#xff0c;它告诉编译器某个变量或函数是在其他地方定义的&#xff0c;而不是在当前文件中定义。具体作用如下&#xff1a; 外部变量声明&#xff1a; 在一个文件中使用 extern 来声明一个在另一个文件中定…

安卓ViewPager最简单使用(另一种实现)

继续前文提醒&#xff1a;ViewPager已经被ViewPager2所取代。 正文&#xff1a; 写完前面一篇文章&#xff0c;又在网上到处翻找&#xff0c;发现其实并不需要真的去继承一个PagerAdapter类也行。 这样我们的问题就简单了&#xff0c;只需要两步&#xff1a; 一、设置布局&…

jmeter如何循环运行到csv文件最后一行后停止

1、首先在线程组中设置’循环次数‘–勾选永远 2、csv数据文件设置中设置&#xff1a; 遇到文件结束符再次循环?——改为&#xff1a;False 遇到文件结束符停止线程?——改为&#xff1a;True 3、再次运行就会根据文档的行数运行数据 &#xff08;如果需要在循环控制器中&…

回答一个同学的问题:在目前深度学习爆火的年代,专家系统还有用吗,会被淘汰吗?

文章目录 我的看法如下&#xff1a;&#xff08;不会被淘汰&#xff0c;会逐渐进化&#xff09;总结 我的看法如下&#xff1a;&#xff08;不会被淘汰&#xff0c;会逐渐进化&#xff09; 专家系统和深度学习有其各自的优势。专家系统利用规则和知识库来给出结论,适用于问题范…

深度解析:探索「两数之和」问题的多种算法解决方案

今天要讨论的是「两数之和」问题&#xff0c;并将从哈希表解法到排序数组与双指针法、再到一遍哈希表解法的不同解决方案进行详细探讨 哈希表解法&#xff1a; 第一&#xff0c;使用了一种简单而有效的方法——哈希表。我们创建了一个 HashMap&#xff0c;用于存储已遍历过的元…

Android : SensorManager 传感器入门 简单应用

功能介绍&#xff1a;转动手机 图片跟着旋转 界面&#xff1a; activity_main.xml <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android"http://schemas.android.com/apk/res/andr…

C4D云渲染怎么提升速度小技巧?C4D云渲染速度提升技巧

当许多C4D用户转向云渲染时&#xff0c;他们常常会发现渲染速度并没有预期中的提升&#xff0c;这让人产生疑问&#xff0c;为什么使用云渲染服务后&#xff0c;渲染时间依然没有显著缩短&#xff0c;C4D云渲染情况取决于多个因素&#xff0c;如&#xff1a;渲染任务特点以及所…

MYSQL练题笔记-子查询-换座位

一、题目相关内容 1&#xff09;相关的表和题目 2&#xff09;帮助理解题目的示例&#xff0c;提供返回结果的格式 二、自己初步的理解 没啥思路&#xff0c;我还没做过交换的这种题&#xff0c;所以我觉得这类交换的题以后值得做一个合集&#xff0c;是有点灵活度在里面的&a…

6-47.时钟模拟

一个Time类&#xff0c;数据成员有时、分、秒。要求模拟秒表&#xff0c;每次走一秒&#xff0c;满60秒进位&#xff0c;秒又从零开始计数。满60分进位&#xff0c;分又从零开始计数。输出时、分和秒的值。&#xff08;使用重载运算符实现&#xff09; 代码实现&#xff1a; /…

一进循环深似海

代码随想录算法训练营第二天|977.有序数组的平方 209.长度最小的子数组 59.螺旋矩阵II 总结 1.LeetCode 977.有序数组的平方 题目链接&#xff1a;https://leetcode.cn/problems/squares-of-a-sorted-array/ 2.1自己看到题目的第一想法 思路&#xff1a;先进行平方&#xf…