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 相关文章推荐
php使用递归与迭代实现快速排序示例
Jan 23 Python
Python 创建子进程模块subprocess详解
Apr 08 Python
Python自然语言处理之词干,词形与最大匹配算法代码详解
Nov 16 Python
Python cookbook(数据结构与算法)实现优先级队列的方法示例
Feb 18 Python
详谈python3中用for循环删除列表中元素的坑
Apr 19 Python
Python实现抓取HTML网页并以PDF文件形式保存的方法
May 08 Python
python使用adbapi实现MySQL数据库的异步存储
Mar 19 Python
pytorch 图像中的数据预处理和批标准化实例
Jan 15 Python
Python自动重新加载模块详解(autoreload module)
Apr 01 Python
PyCharm+Pipenv虚拟环境开发和依赖管理的教程详解
Apr 16 Python
python中pickle模块浅析
Dec 29 Python
python中的plt.cm.Paired用法说明
May 31 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扩展ZF――Validate扩展
2008/01/10 PHP
php采集时被封ip的解决方法
2010/08/29 PHP
php5.3中连接sqlserver2000的两种方法(com与ODBC)
2012/12/29 PHP
PHP实现文件下载断点续传详解
2014/10/15 PHP
CI框架中$this->load->library()用法分析
2016/05/18 PHP
PHP怎样用正则抓取页面中的网址
2016/08/09 PHP
用roll.js实现的图片自动滚动+鼠标触动的特效
2007/03/18 Javascript
Javascript学习笔记5 类和对象
2010/01/11 Javascript
仅IE支持clearAttributes/mergeAttributes方法使用介绍
2012/05/04 Javascript
jQuery提交表单ajax查询实例代码
2012/10/07 Javascript
node.js中的fs.rmdirSync方法使用说明
2014/12/16 Javascript
jquery搜索框效果实现方法
2015/01/16 Javascript
javascript 数组操作详解
2015/01/29 Javascript
原生js页面滚动延迟加载图片
2015/12/20 Javascript
对象不支持indexOf属性或方法的解决方法(必看)
2017/05/28 Javascript
JavaScript ES6中const、let与var的对比详解
2017/06/18 Javascript
小程序自定义组件实现城市选择功能
2018/07/18 Javascript
vue表单自定义校验规则介绍
2018/08/28 Javascript
Three.js实现3D机房效果
2018/12/30 Javascript
详解基于iview-ui的导航栏路径(面包屑)配置
2019/02/22 Javascript
javascrpt密码强度校验函数详解
2020/03/18 Javascript
[02:46]2014DOTA2国际邀请赛 选手为你解读比赛MVP充满梦想
2014/07/09 DOTA
python判断windows隐藏文件的方法
2014/03/21 Python
Python中使用Beautiful Soup库的超详细教程
2015/04/30 Python
Python基础教程之tcp socket编程详解及简单实例
2017/02/23 Python
python获取微信企业号打卡数据并生成windows计划任务
2019/04/30 Python
Python实现搜索算法的实例代码
2020/01/02 Python
tensorflow通过模型文件,使用tensorboard查看其模型图Graph方式
2020/01/23 Python
python GUI库图形界面开发之PyQt5开发环境配置与基础使用
2020/02/25 Python
美国波道夫·古德曼百货官网:Bergdorf Goodman
2017/11/07 全球购物
天猫国际进口超市直营:官方直采,一站购齐
2017/12/11 全球购物
Molton Brown美国官网:奢华美容、香水、沐浴和身体护理
2020/09/02 全球购物
中专毕业生自荐信
2013/11/16 职场文书
学校2016年圣诞节活动总结
2016/03/31 职场文书
python munch库的使用解析
2021/05/25 Python
Node.js实现断点续传
2021/06/23 Javascript