Python---TCP 客户端程序开发

1. 开发 TCP 客户端程序开发步骤回顾

  1. 创建客户端套接字对象
  2. 和服务端套接字建立连接
  3. 发送数据
  4. 接收数据
  5. 关闭客户端套接字

2. socket 类的介绍

导入 socket 模块 import socket

创建客户端 socket 对象 socket.socket(AddressFamily, Type)

参数说明:

  • AddressFamily 表示IP地址类型, 分为TPv4和IPv6
  • Type 表示传输协议类型

方法说明:

  • connect((host, port)) 表示和服务端套接字建立连接, host是服务器ip地址,port是应用程序的端口号
  • send(data) 表示发送数据,data是二进制数据
  • recv(buffersize) 表示接收数据, buffersize是每次接收数据的长度

3. TCP 客户端程序开发示例代码

import socketif __name__ == '__main__':# 创建tcp客户端套接字# 1. AF_INET:表示ipv4# 2. SOCK_STREAM: tcp传输协议tcp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 和服务端应用程序建立连接tcp_client_socket.connect(("192.168.131.62", 8080))# 代码执行到此,说明连接建立成功# 准备发送的数据send_data = "你好服务端,我是客户端小黑!".encode("gbk")# 发送数据tcp_client_socket.send(send_data)# 接收数据, 这次接收的数据最大字节数是1024recv_data = tcp_client_socket.recv(1024)# 返回的直接是服务端程序发送的二进制数据print(recv_data)# 对数据进行解码recv_content = recv_data.decode("gbk")print("接收服务端的数据为:", recv_content)# 关闭套接字tcp_client_socket.close()

执行结果:

b'hello'
接收服务端的数据为: hello

说明

  1. str.encode(编码格式) 表示把字符串编码成为二进制
  2. data.decode(编码格式) 表示把二进制解码成为字符串

网络调试助手充当服务端程序:

4. 小结

  1. 导入socket模块
  2. 创建TCP套接字‘socket’
    • 参数1: ‘AF_INET’, 表示IPv4地址类型
    • 参数2: ‘SOCK_STREAM’, 表示TCP传输协议类型
  3. 发送数据‘send’
    • 参数1: 要发送的二进制数据, 注意: 字符串需要使用encode()方法进行编码
  4. 接收数据‘recv’
    • 参数1: 表示每次接收数据的大小,单位是字节
  5. 关闭套接字‘socket’表示通信完成


 

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

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

相关文章

JavaScript:函数

JavaScript:函数 函数的作用函数的声明和调用函数声明函数调用函数重复声明 函数传参传参语法参数默认值与参数数量问题传参数量过多传参数量太少参数默认值 函数的返回值函数表达式匿名函数立即执行函数 函数的作用 在我们编程过程中,会出现一种情况&a…

[软件] Image2LCD v4.0

介绍 通过打开图片, 可以提取图片的像素特征, 生成.c文件, 或者二进制文件等, 提供人们根据需要选择. 16位真彩色 每一个像素点需要用16位来表示, 分别是RGB, R: 5位 G: 6位, B: 5位, 共两个字节. 配置 tftLCD180显示屏, 官方给的参考代码, 需要如下所示设置.

【Spring Security】认证密码加密Token令牌CSRF的使用详解

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《Spring Security》。🎯🎯 …

频谱论文:RadioUNet:使用卷积神经网络的快速无线电地图估计

#频谱# R. Levie, . Yapar, G. Kutyniok and G. Caire, "RadioUNet: Fast Radio Map Estimation With Convolutional Neural Networks," in IEEE Transactions on Wireless Communications, vol. 20, no. 6, pp. 4001-4015, June 2021, doi: 10.1109/TWC.2021.305497…

【hadoop】解决浏览器不能访问Hadoop的50070、8088等端口?!

【hadoop】解决浏览器不能访问Hadoop的50070、8088等端口?!😎 前言🙌【hadoop】解决浏览器不能访问Hadoop的50070、8088等端口?!查看自己的配置文件:最终成功访问如图所示: 总结撒花…

10 个顶级免费 Android 数据恢复软件可帮助恢复已删除的文件

不小心删除了手机上的一些重要数据或文件?这很不幸,但不要悲伤或放弃希望,因为仍有机会恢复它们。 10 个顶级免费 Android 数据恢复软件 虽然 Android 手机没有像 Windows 那样的回收站可以自动存储您删除的数据,但是有很多功能强…

【Java中的负数取绝对值结果为什么不一定是正数?】

Java中的负数取绝对值结果为什么不一定是正数? ✅典型解析✅扩展知识仓✅整型的取值范围✅超出范围怎么办 ✅典型解析 假如,我们要用Math.abs对一个nteger取绝对值的时候,如果用如下方式: Math .abs(orderId.hashCode());得到的结果可能是个负…

在Java Web开发中,Servlet功能与jsp功能可以相互转换吗

在Java Web开发中,Servlet和JSP是两种常用的Web组件,它们可以相互协作,也可以相互转换。 具体来说,Servlet可以实现所有JSP的功能,而JSP也可以调用Servlet中的方法。Servlet可以通过Java代码生成HTML页面,而…

一键转换,将HTML智能转换为PDF,轻松解决文档转换需求

在数字时代,HTML网页是我们获取信息的主要来源之一。然而,有时候我们可能需要将网页内容以PDF格式保存,以便于离线阅读、打印或分享。这时,将HTML转换为PDF就变得尤为重要。 首先,我们要进入首助编辑高手主页面&#x…

[CVPR-23] Instant Volumetric Head Avatars

[paper | code | proj] 本文提出INSTA。INSTA是一种backward mapping方法。该方法基于NeRF建立标准空间,形变空间(任意表情)通过映射回标准空间,实现渲染。为实现形变空间中任意点向标准空间的映射,对形变空间中的任意…

C++ Qt开发:TabWidget实现多窗体功能

Qt 是一个跨平台C图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍TabWidget标签组件的常用方法及灵活运用。 Q…

MVVM响应式

聚沙成塔每天进步一点点 本文内容 ⭐ 专栏简介MVVM响应式1. 什么是MVVM模式?2. Vue中的响应式数据3. 数据绑定与视图更新⭐ 写在最后⭐ 专栏简介 Vue学习之旅的奇妙世界 欢迎大家来到 Vue 技能树参考资料专栏!创建这个专栏的初衷是为了帮助大家更好地应对 Vue.js 技能树的学习…

IspSrver-DNS

2023年全国网络系统管理赛项真题 模块B-Windows解析 题目 安装DNS服务器,根据题目创建必要正向区域和反向区域的DNS解析。把当前机器作为互联网根域服务器,创建test1.com~test100.com,并在所有正向区域中创建一条A记录,解析到本机地址。配置步骤 安装DNS服务器,根据题目创…

3842充电器电路图大全

3842充电器电路图(一) UC3842组成的充电器电路 图1中C1、V1~V4、C2组成滤波整流电路,变压器T为高频变压器,V5、R2、C11组成功率开关管V7的保护电路,NF为供给IC电源的绕组。单端输出IC为UC3842,…

Nacos-服务发现与配置管理v1.0

Nacos - 服务发现和配置管理 教学目标 1)能够理解微服务架构的特点 2)能够理解服务发现的流程 3)能够说出Nacos的功能 4)掌握Nacos的安装方法 5)掌握RESTful服务发现开发方法 6)掌握Dubbo服务发现开…

ICC2:Less than minimum edge length和Concave convex edge enclosure

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 首先,要介绍一下这两种drc Less than minimum edge length对应的tf rule如下: 而Concave convex edge enclosure对应图示和tf 规则如下,可

信息论安全与概率论

目录 一. Markov不等式 二. 选择引理 三. Chebyshev不等式 四. Chernov上限 4.1 变量大于 4.2 变量小于 信息论安全中会用到很多概率论相关的上界,本文章将梳理几个论文中常用的定理,重点关注如何理解这些定理以及怎么用。 一. Markov不等式 假定…

仙女麻麻看过来~你想要的穿搭我都有

精选优质匈牙利白鸭绒填充绒朵大而蓬松,毫无异味整件格充绒工艺不跑绒 更加的保暖舒适版型优秀显瘦不臃肿 黑色经典好穿又好看!

获取请求体中json数据并解析到实体对象

目录 相关依赖 前端代码 后端代码 测试结果 相关依赖 <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.83</version> </dependency> <dependency><groupId>comm…

【HarmonyOS开发】ArkUI实现下拉刷新/上拉加载

列表下拉刷新、上拉加载更多&#xff0c;不管在web时代还是鸿蒙应用都是一个非常常用的功能&#xff0c;基于ArkUI中TS扩展的声明式开发范式实现一个下拉刷新&#xff0c;上拉加载。 上拉加载、下拉刷新 如果数据量过大&#xff0c;可以使用LazyForEach代替ForEach 高阶组件-…