Python 技术篇-socket套接字实现服务器客户端消息传递实例演示,UDP实现

简介: Python 技术篇-socket套接字实现服务器客户端消息传递实例演示,UDP实现

上一篇Python 技术篇-socket 套接字实现两个窗口间消息传递,TCP 实现

本篇介绍用 UDP 来实现。

socket 套接字实现服务器客户端消息传递有 UDPTCP 两种形式。他们最主要的区别是: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":
        break
Socket_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":
        break
Socket_UDP.close()

服务器窗口截图:

image.png

客户端窗口截图:

image.png

喜欢的点个赞❤吧!


目录
相关文章
|
6月前
|
存储 监控 API
Python实战:跨平台电商数据聚合系统的技术实现
本文介绍如何通过标准化API调用协议,实现淘宝、京东、拼多多等电商平台的商品数据自动化采集、清洗与存储。内容涵盖技术架构设计、Python代码示例及高阶应用(如价格监控系统),提供可直接落地的技术方案,帮助开发者解决多平台数据同步难题。
|
5月前
|
数据可视化 大数据 关系型数据库
基于python大数据技术的医疗数据分析与研究
在数字化时代,医疗数据呈爆炸式增长,涵盖患者信息、检查指标、生活方式等。大数据技术助力疾病预测、资源优化与智慧医疗发展,结合Python、MySQL与B/S架构,推动医疗系统高效实现。
|
6月前
|
数据采集 存储 XML
Python爬虫技术:从基础到实战的完整教程
最后强调: 父母法律法规限制下进行网络抓取活动; 不得侵犯他人版权隐私利益; 同时也要注意个人安全防止泄露敏感信息.
912 19
|
7月前
|
数据采集 机器学习/深度学习 数据可视化
Python量化交易:结合爬虫与TA-Lib技术指标分析
Python量化交易:结合爬虫与TA-Lib技术指标分析
|
8月前
|
数据采集 自然语言处理 分布式计算
大数据岗位技能需求挖掘:Python爬虫与NLP技术结合
大数据岗位技能需求挖掘:Python爬虫与NLP技术结合
|
网络协议 测试技术 网络安全
Python编程-Socket网络编程
Python编程-Socket网络编程
220 0
|
网络协议 开发者 Python
深度探索Python Socket编程:从理论到实践,进阶篇带你领略网络编程的魅力!
【7月更文挑战第25天】在网络编程中, Python Socket编程因灵活性强而广受青睐。本文采用问答形式深入探讨其进阶技巧。**问题一**: Socket编程基于TCP/IP,通过创建Socket对象实现通信,支持客户端和服务器间的数据交换。**问题二**: 提升并发处理能力的方法包括多线程(适用于I/O密集型任务)、多进程(绕过GIL限制)和异步IO(asyncio)。**问题三**: 提供了一个使用asyncio库实现的异步Socket服务器示例,展示如何接收及响应客户端消息。通过这些内容,希望能激发读者对网络编程的兴趣并引导进一步探索。
289 4
|
开发者 Python
Python Socket编程:不只是基础,更有进阶秘籍,让你的网络应用飞起来!
【7月更文挑战第25天】在网络应用蓬勃发展的数字时代,Python凭借其简洁的语法和强大的库支持成为开发高效应用的首选。本文通过实时聊天室案例,介绍了Python Socket编程的基础与进阶技巧,包括服务器与客户端的建立、数据交换等基础篇内容,以及使用多线程和异步IO提升性能的进阶篇。基础示例展示了服务器端监听连接请求、接收转发消息,客户端连接服务器并收发消息的过程。进阶部分讨论了如何利用Python的`threading`模块和`asyncio`库来处理多客户端连接,提高应用的并发处理能力和响应速度。掌握这些技能,能使开发者在网络编程领域更加游刃有余,构建出高性能的应用程序。
197 3
|
网络协议 Python
网络世界的建筑师:Python Socket编程基础与进阶,构建你的网络帝国!
【7月更文挑战第26天】在网络的数字宇宙中,Python Socket编程是开启网络世界大门的钥匙。本指南将引领你从基础到实战,成为网络世界的建筑师。
274 2

推荐镜像

更多