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 15 Python
Python设置默认编码为utf8的方法
Jul 01 Python
python 垃圾收集机制的实例详解
Aug 20 Python
Python内置模块ConfigParser实现配置读写功能的方法
Feb 12 Python
在Python中使用gRPC的方法示例
Aug 08 Python
django富文本编辑器的实现示例
Apr 10 Python
django 做 migrate 时 表已存在的处理方法
Aug 31 Python
Python HTMLTestRunner可视化报告实现过程解析
Apr 10 Python
Python操作Elasticsearch处理timeout超时
Jul 17 Python
python math模块的基本使用教程
Jan 16 Python
Python网络编程之ZeroMQ知识总结
Apr 25 Python
Python中的socket网络模块介绍
Jul 23 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
PHP字符串处理的10个简单方法
2010/06/30 PHP
在smarty中调用php内置函数的方法
2013/02/07 PHP
php读取flash文件高宽帧数背景颜色的方法
2015/01/06 PHP
php实现微信公众号无限群发
2015/10/11 PHP
JQuery弹出炫丽对话框的同时让背景变灰色
2014/05/22 Javascript
一看就懂:jsonp详解
2015/06/01 Javascript
Webpack 实现 AngularJS 的延迟加载
2016/03/02 Javascript
js获取页面及个元素高度、宽度的代码
2016/04/26 Javascript
Bootstrap表单Form全面解析
2016/06/13 Javascript
获取jqGrid中选择的行的数据
2016/11/30 Javascript
gulp加批处理(.bat)实现ng多应用一键自动化构建
2017/02/16 Javascript
Javascript实现从小到大的数组转换成二叉搜索树
2017/06/13 Javascript
Vue.js用法详解
2017/11/13 Javascript
echarts鼠标覆盖高亮显示节点及关系名称详解
2018/03/17 Javascript
浅谈Javascript中的对象和继承
2019/04/19 Javascript
快速了解Vue父子组件传值以及父调子方法、子调父方法
2020/07/15 Javascript
[44:37]完美世界DOTA2联赛PWL S3 Forest vs access 第一场 12.11
2020/12/13 DOTA
在Python中使用全局日志时需要注意的问题
2015/05/06 Python
django 多数据库及分库实现方式
2020/04/01 Python
娇韵诗加拿大官网:Clarins加拿大
2017/11/20 全球购物
豪华复古化妆:Besame Cosmetics
2019/09/06 全球购物
JVM是一个编译程序还是解释程序
2012/09/11 面试题
生产总经理岗位职责
2013/12/19 职场文书
校园网站的创业计划书范文
2013/12/30 职场文书
环境科学专业优秀毕业生自荐书
2014/02/03 职场文书
怀念母亲教学反思
2014/04/28 职场文书
伊索寓言教学反思
2014/05/01 职场文书
科技工作者先进事迹
2014/08/16 职场文书
单位在职证明书
2014/09/11 职场文书
产品委托授权书范本
2014/09/16 职场文书
反对形式主义、官僚主义、享乐主义和奢靡之风整改措施
2014/09/17 职场文书
餐厅感恩节活动策划方案
2014/10/11 职场文书
小升初自荐信怎么写
2015/03/26 职场文书
2015年市场营销工作总结
2015/07/23 职场文书
Java 关于String字符串原理上的问题
2022/04/07 Java/Android
Flink 侧流输出源码示例解析
2022/09/23 Servers