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之for循环语句
Oct 02 Python
python实现删除文件与目录的方法
Nov 10 Python
Python 专题一 函数的基础知识
Mar 16 Python
python 3利用BeautifulSoup抓取div标签的方法示例
May 28 Python
Python各类图像库的图片读写方式总结(推荐)
Feb 23 Python
python3操作注册表的方法(Url protocol)
Feb 05 Python
python str字符串转uuid实例
Mar 03 Python
python中threading开启关闭线程操作
May 02 Python
Python特殊属性property原理及使用方法解析
Oct 09 Python
5款实用的python 工具推荐
Oct 13 Python
python for循环赋值问题
Jun 03 Python
Django数据库(SQlite)基本入门使用教程
Jul 07 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数据结构 算法(PHP描述) 简单选择排序 simple selection sort
2011/08/09 PHP
php字符串截取函数用法分析
2014/11/25 PHP
用函数式编程技术编写优美的 JavaScript_ibm
2008/05/16 Javascript
两种WEB下的模态对话框 (asp.net或js的分别实现)
2009/12/02 Javascript
基于Jquery 解决Ajax请求的页面 浏览器后退前进功能,页面刷新功能实效问题
2010/12/11 Javascript
Javascript的常规数组和关联数组对比小结
2012/05/24 Javascript
定时器(setTimeout/setInterval)调用带参函数失效解决方法
2013/03/26 Javascript
Extjs 4.x 得到form CheckBox 复选框的值
2014/05/04 Javascript
JS实现iframe自适应高度的方法示例
2017/01/07 Javascript
js图片轮播手动切换特效
2017/01/12 Javascript
JS排序之快速排序详解
2017/04/08 Javascript
vue构建单页面应用实战
2017/04/10 Javascript
详解webpack es6 to es5支持配置
2017/05/04 Javascript
JavaScript实现三级联动菜单实例代码
2017/06/26 Javascript
js定时器实现倒计时效果
2017/11/05 Javascript
js html实现计算器功能
2018/11/13 Javascript
vue实现父子组件之间的通信以及兄弟组件的通信功能示例
2019/01/29 Javascript
Vue3 源码导读(推荐)
2019/10/14 Javascript
如何使用JavaScript实现无缝滚动自动播放轮播图效果
2020/08/20 Javascript
Python文件右键找不到IDLE打开项解决办法
2015/06/08 Python
基于树莓派的语音对话机器人
2019/06/17 Python
python如何给字典的键对应的值为字典项的字典赋值
2019/07/05 Python
关于pytorch中网络loss传播和参数更新的理解
2019/08/20 Python
python迭代器常见用法实例分析
2019/11/22 Python
基于keras输出中间层结果的2种实现方式
2020/01/24 Python
Matplotlib 折线图plot()所有用法详解
2020/07/28 Python
django使用graphql的实例
2020/09/02 Python
Python和Bash结合在一起的方法
2020/11/13 Python
CSS3 @keyframes简单动画实现
2018/02/24 HTML / CSS
详解HTML5 LocalStorage 本地存储
2016/12/23 HTML / CSS
经典c++面试题四
2015/05/14 面试题
旅游个人求职信范文
2014/01/30 职场文书
感谢信的格式
2015/01/21 职场文书
坎儿井导游词
2015/02/09 职场文书
幼儿园教师心得体会范文
2016/01/21 职场文书
导游词之珠海轮廓
2019/10/25 职场文书