python3实现UDP协议的服务器和客户端


Posted in Python onJune 14, 2017

利用Python中的socket模块中的来实现UDP协议,这里写一个简单的服务器和客户端。为了说明网络编程中UDP的应用,这里就不写图形化了,在两台电脑上分别打开UDP的客户端和服务端就可以了。

UDP:用户数据报协议,是一个面向无连接的协议。采用该协议不需要两个应用程序先建立连接。UDP协议不提供差错恢复,不能提供数据重传,因此该协议传输数据安全性差。 

客户端

python3只能收发二进制数据,需要显式转码

from socket import *

host = '192.168.48.128' # 这是客户端的电脑的ip
port = 13141 #接口选择大于10000的,避免冲突
bufsize = 1024 #定义缓冲大小

addr = (host,port) # 元祖形式
udpClient = socket(AF_INET,SOCK_DGRAM) #创建客户端

while True:
  data = input('>>> ')
  if not data:
    break
  data = data.encode(encoding="utf-8") 
  udpClient.sendto(data,addr) # 发送数据
  data,addr = udpClient.recvfrom(bufsize) #接收数据和返回地址
  print(data.decode(encoding="utf-8"),'from',addr)

udpClient.close()

服务器

同样需要显式转码

from socket import *
from time import ctime

host = '' #监听所有的ip
port = 13141 #接口必须一致
bufsize = 1024
addr = (host,port) 

udpServer = socket(AF_INET,SOCK_DGRAM)
udpServer.bind(addr) #开始监听

while True:
 print('Waiting for connection...')
 data,addr = udpServer.recvfrom(bufsize) #接收数据和返回地址
 #处理数据
 data = data.decode(encoding='utf-8').upper()
 data = "at %s :%s"%(ctime(),data)
 udpServer.sendto(data.encode(encoding='utf-8'),addr)
 #发送数据
 print('...recevied from and return to :',addr)

udpServer.close()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python字典操作简明总结
Apr 13 Python
Python中的命令行参数解析工具之docopt详解
Mar 27 Python
解决Python字典写入文件出行首行有空格的问题
Sep 27 Python
python将回车作为输入内容的实例
Jun 23 Python
Python Unittest根据不同测试环境跳过用例的方法
Dec 16 Python
安装好Pycharm后如何配置Python解释器简易教程
Jun 28 Python
Python queue队列原理与应用案例分析
Sep 27 Python
tensorflow常用函数API介绍
Apr 19 Python
Pytorch mask-rcnn 实现细节分享
Jun 24 Python
利用keras使用神经网络预测销量操作
Jul 07 Python
python 通过 pybind11 使用Eigen加速代码的步骤
Dec 07 Python
全网最详细的PyCharm+Anaconda的安装过程图解
Jan 25 Python
老生常谈Python基础之字符编码
Jun 14 #Python
python3实现TCP协议的简单服务器和客户端案例(分享)
Jun 14 #Python
Python之re操作方法(详解)
Jun 14 #Python
Python之py2exe打包工具详解
Jun 14 #Python
使用XML库的方式,实现RPC通信的方法(推荐)
Jun 14 #Python
python实现单线程多任务非阻塞TCP服务端
Jun 13 #Python
Python实现的下载网页源码功能示例
Jun 13 #Python
You might like
Ext.data.PagingMemoryProxy分页一次性读取数据的实现代码
2010/04/07 PHP
THINKPHP项目开发中的日志记录实例分析
2014/12/01 PHP
php写app接口并返回json数据的实例(分享)
2017/05/20 PHP
php curl获取https页面内容,不直接输出返回结果的设置方法
2019/01/15 PHP
PHP实现cookie跨域session共享的方法分析
2019/08/23 PHP
IE6图片加载的一个BUG解决方法
2010/07/13 Javascript
JS解决url传值出现中文乱码的另类办法
2013/04/08 Javascript
js二维数组排序的简单示例代码
2014/01/24 Javascript
js截取中英文字符串、标点符号无乱码示例解读
2014/04/17 Javascript
JS实现网页游戏中滑块响应鼠标点击移动效果
2015/10/19 Javascript
基于BootStrap的图片轮播效果展示实例代码
2016/05/23 Javascript
js获取页面引用的css样式表中的属性值方法(推荐)
2016/08/19 Javascript
JavaScript中三个等号和两个等号的区别(== 和 ===)浅析
2016/09/22 Javascript
js实现鼠标左右移动,图片也跟着移动效果
2017/01/25 Javascript
vuex中使用对象展开运算符的示例
2017/09/25 Javascript
vue+springboot实现项目的CORS跨域请求
2018/09/05 Javascript
详解微信小程序-扫一扫 wx.scanCode() 扫码大变身
2019/04/30 Javascript
js实现鼠标点击飘爱心效果
2020/08/19 Javascript
js+canvas实现图片格式webp/png/jpeg在线转换
2020/08/22 Javascript
关于vue 项目中浏览器跨域的配置问题
2020/11/10 Javascript
详解在Python中处理异常的教程
2015/05/24 Python
python opencv检测目标颜色的实例讲解
2018/04/02 Python
Python读取视频的两种方法(imageio和cv2)
2018/04/15 Python
python绘制中国大陆人口热力图
2018/11/07 Python
Python实现一个数组除以一个数的例子
2019/07/20 Python
如何在python开发工具PyCharm中搭建QtPy环境(教程详解)
2020/02/04 Python
解决Tensorflow2.0 tf.keras.Model.load_weights() 报错处理问题
2020/06/12 Python
TensorFlow的环境配置与安装方法
2021/02/20 Python
JD Sports比利时官网:英国领先的运动鞋和运动服饰零售商
2018/10/10 全球购物
先进班组材料范文
2014/12/25 职场文书
单身证明格式样本
2015/06/15 职场文书
幼儿园科学课教学反思
2016/03/03 职场文书
创业计划书之酒厂
2019/10/14 职场文书
phpQuery解析HTML乱码问题(补充官网未列出的乱码解决方案)
2021/04/01 PHP
python编程项目中线上问题排查与解决
2021/11/01 Python
Python爬虫网络请求之代理服务器和动态Cookies
2022/04/12 Python