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文件去除注释的方法
May 25 Python
举例讲解Python的lambda语句声明匿名函数的用法
Jul 01 Python
Python HTTP客户端自定义Cookie实现实例
Apr 28 Python
详解python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别
Jun 23 Python
Python使用django框架实现多人在线匿名聊天的小程序
Nov 29 Python
matplotlib绘图实例演示标记路径
Jan 23 Python
python自动重试第三方包retrying模块的方法
Apr 24 Python
python中yield的用法详解——最简单,最清晰的解释
Apr 04 Python
详解pandas绘制矩阵散点图(scatter_matrix)的方法
Apr 23 Python
Python装饰器如何实现修复过程解析
Sep 05 Python
Cpython解释器中的GIL全局解释器锁
Nov 09 Python
Python将QQ聊天记录生成词云的示例代码
Feb 10 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
基于mysql的论坛(1)
2006/10/09 PHP
PHP 获取远程文件大小的3种解决方法
2013/07/11 PHP
PHP针对常规模板引擎中与CSS/JSON冲突的解决方法
2014/08/19 PHP
PHP实现的用户注册表单验证功能简单示例
2019/02/25 PHP
让firefox支持IE的一些方法的javascript扩展函数代码
2010/01/02 Javascript
jquery多浏览器捕捉回车事件代码
2010/06/22 Javascript
JS操作CSS随机改变网页背景实现思路
2014/03/10 Javascript
jQuery基于ajax操作json数据简单示例
2017/01/05 Javascript
Vue数据驱动模拟实现2
2017/01/11 Javascript
利用ES6的Promise.all实现至少请求多长时间的实例
2017/08/28 Javascript
jQuery Collapse1.1.0折叠插件简单使用
2017/08/28 jQuery
Angular 利用路由跳转到指定页面的指定位置方法
2018/08/31 Javascript
axios取消请求的实践记录分享
2018/09/26 Javascript
ES6小技巧之代替lodash
2019/06/07 Javascript
vue-resource:jsonp请求百度搜索的接口示例
2019/11/09 Javascript
微信小程序实现搜索功能
2020/03/10 Javascript
[57:12]完美世界DOTA2联赛循环赛 Inki vs Matador BO2第一场 10.31
2020/11/02 DOTA
Python实现的朴素贝叶斯算法经典示例【测试可用】
2018/06/13 Python
Selenium定位元素操作示例
2018/08/10 Python
pycharm在调试python时执行其他语句的方法
2018/11/29 Python
在python3中pyqt5和mayavi不兼容问题的解决方法
2019/01/08 Python
python opencv实现图像边缘检测
2019/04/29 Python
Python button选取本地图片并显示的实例
2019/06/13 Python
pygame编写音乐播放器的实现代码示例
2019/11/19 Python
python数据预处理方式 :数据降维
2020/02/24 Python
使用Matplotlib绘制不同颜色的带箭头的线实例
2020/04/17 Python
使用css3匹配手机屏幕横竖状态
2014/01/27 HTML / CSS
好药师网上药店:安全合法的网上药品零售药房
2017/02/15 全球购物
一年级家长会邀请函
2014/01/25 职场文书
关于迟到的检讨书
2014/01/26 职场文书
大学生党员自我批评
2014/02/14 职场文书
保护环境的标语
2014/06/09 职场文书
合伙经营协议书范本(通用版)
2014/12/03 职场文书
幼儿园教师考核评语
2014/12/31 职场文书
听证通知书
2015/04/24 职场文书
MySQL学习之基础命令实操总结
2022/03/19 MySQL