Python 技术篇-socket套接字实现服务器客户端消息传递实例演示,UDP实现
上一篇:Python 技术篇-socket 套接字实现两个窗口间消息传递,TCP 实现
本篇介绍用 UDP 来实现。
socket 套接字实现服务器客户端消息传递有 UDP 和 TCP 两种形式。他们最主要的区别是:TCP 需要建立客户端与服务器的连接,UDP 不需要
建立 UDP 连接的 socket 对象:socket(AF_INET, SOCK_DGRAM)
。
UDP 接收数据:recvfrom(buf)
,返回值是客户端传的数据和客户端的地址,参数 buf 是缓冲区大小,比如 8 的话相当于 2 个中文,8 个英文或数字,一般设置 1024。
UDP 发送数据:sendto(data, addr)
,data 是字节 bytes 类型的数据,addr 是形如 (host, port)
端口号加地址的元组类型数据。
服务器端代码:
from socket import *host = "" # ip,服务器空ip代表本地;
port = 7777 # 端口号;
addr = (host, port)Socket_UDP = socket(AF_INET, SOCK_DGRAM) # 创建socket对象;
Socket_UDP.bind(addr) # 服务器用bind绑定本地,也算是服务器的标识;print("Waitting...")
while True:data, addr = Socket_UDP.recvfrom(128) # 缓冲区大小可以设置大一点data = str(data, encoding = 'utf-8') # 将接收的字节类型数据转化为字符串类型;print("来自" + str(addr) + "发来的消息: " + data)if data == "exit":breakSocket_UDP.close() # 关闭socket对象;
客户端代码:
from socket import *host = "127.0.0.1" # 服务器的地址,因为服务器也在本地,所以填本地地址了
port = 7777 # 端口号要与服务器一致
addr = (host, port)Socket_UDP = socket(AF_INET, SOCK_DGRAM)while True:data = input("向服务器发送消息: ")data = bytes(data, encoding = 'utf-8') # 因为input返回的是字符串类型的数据,data需要字节类型的数据Socket_UDP.sendto(data, addr) if data == "exit":breakSocket_UDP.close()
服务器窗口截图:
客户端窗口截图:
喜欢的点个赞❤吧!
Python 技术篇-socket套接字实现服务器客户端消息传递实例演示,UDP实现相关推荐
- Python 技术篇-socket套接字实现两个窗口间消息传递实例演示,TCP实现
上一篇:Python 技术篇-socket 套接字实现服务器客户端消息传递,UDP 实现 本篇介绍用 TCP 来实现. socket 实现客户端服务器的消息传递有 TCP 和 UDP 两种方式. TC ...
- Socket套接字实现服务器端连接
1using System; 2using System.Drawing; 3using System.Collections; 4using System.ComponentMode ...
- 自学Python 58 Socket套接字编程 (一)
Python Socket套接字编程 (一) 文章目录 Python Socket套接字编程 (一) 一.库 Socket 内置函数和属性 二.Python中的socket通信逻辑 Socket又 ...
- python编程socket套接字常用属性
""" socket套接字属性设置套接字选项:soc.setsockopt(level,option,value)level:选项类别SOL_SOCKEToption:具 ...
- python socket send_全网最详细python中socket套接字send与sendall的区别
将数据发送到套接字. 套接字必须连接到远程套接字. 返回发送的字节数. 应用程序负责检查是否已发送所有数据; 如果仅传输了一些数据, 则应用程序需要尝试传递剩余数据.(需要用户自己完成) 将数据发送 ...
- 【Groovy】使用 Groovy 语言开发服务器 Server 和客户端 Client 套接字程序 ( 服务器客户端完整代码示例 | 运行服务器端与客户端效果及过程分析 )
文章目录 一.服务器端完整代码 Server.groovy 二.客户端完整代码 Client.groovy 三.运行服务器端与客户端效果及过程分析 一.服务器端完整代码 Server.groovy 参 ...
- Python 技术篇-用os库实现本地文件重命名实例演示
os.rename() 就是用来重命名的. 下面演示将D:\python文件夹下的 a.txt 改为 b.txt. import os# 方法一 path = "D:\\python&quo ...
- Python 技术篇 - 操作excel实现单元格合并并居中实例演示,用openpyxl库为指定区域的单元格设置对齐样式和字体样式方法
Openpyxl 设置 excel 单元格合并.对齐样式和字体 第一章:openpyxl 操作 excel ① 设置单元格合并 ② 设置单元格居中对齐样式 ③ 设置单元格字体样式 第一章:openpy ...
- 一个简单的socket套接字服务器,Python
(1)用Python实现一个简单的套接字socket服务器例子,该服务器在接受客户端连接后,每隔一秒从a到z的字符中随机选一个发送给客户端. import socketserver import ti ...
最新文章
- Documentum常见问题4—如何通过vlink方式直接查看文档内容
- 大数据面试题及答案 汇总版
- php 变量 换行,php去除换行符的方法小结(PHP_EOL变量的使用)_PHP教程
- 陌屿授权系统v2.0源码
- 上学与不上学的区别_这是我在全球最大的React会议上学到的
- yii2.0框架debug模式
- mysql----------mysql5.7如何配置主从数据库
- 45本数据分析、Python的书籍,包邮送到家
- C++--第9课 - 构造与析构 - 上
- Xshell7,Xftp7免费版下载安装
- 51单片机定时器问题总结
- SQL Server安装教程
- JAVA架构师学习路线图(绝对详细)
- 自然语言推断:微调BERT
- BIOS设置中功能的翻译及介绍
- 【7gyy】利用F11恢复崩溃系统
- [ubuntn]常用软件安装方法
- gparted给ubuntu系统扩容
- 【ONV】6 口百兆 AI PoE 供电交换机简介
- Vue中将Element表格导出为excel