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实现下载网易云音乐的高清MV
Mar 16 Python
python数组复制拷贝的实现方法
Jun 09 Python
python学习笔记之调用eval函数出现invalid syntax错误问题
Oct 18 Python
Python中顺序表的实现简单代码分享
Jan 09 Python
PyQt4实现下拉菜单可供选择并打印出来
Apr 20 Python
Django1.9 加载通过ImageField上传的图片方法
May 25 Python
python实现K近邻回归,采用等权重和不等权重的方法
Jan 23 Python
python爬虫selenium和phantomJs使用方法解析
Aug 08 Python
使用OpenCV实现仿射变换—旋转功能
Aug 29 Python
python 6行代码制作月历生成器
Sep 18 Python
Jmeter调用Python脚本实现参数互相传递的实现
Jan 22 Python
教你利用python实现企业微信发送消息
May 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
跟我学Laravel之视图 & Response
2014/10/15 PHP
分享PHP源码批量抓取远程网页图片并保存到本地的实现方法
2015/12/01 PHP
phpmailer简单发送邮件的方法(附phpmailer源码下载)
2016/06/13 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
2017/12/25 PHP
PHP实现微信退款功能
2018/10/02 PHP
Aliyun Linux 编译安装 php7.3 tengine2.3.2 mysql8.0 redis5的过程详解
2020/10/20 PHP
js中将字符串转换成json的三种方式
2011/01/12 Javascript
JavaScript在XHTML中的用法详解
2013/04/11 Javascript
jquery序列化表单去除指定元素示例代码
2014/04/10 Javascript
jQuery实现防止提交按钮被双击的方法
2015/03/24 Javascript
js纯数字逐一停止显示效果的实现代码
2016/03/16 Javascript
利用jquery正则表达式在页面验证url网址输入是否正确
2017/04/04 jQuery
jQuery绑定事件方法及区别(bind,click,on,live,one)
2017/08/14 jQuery
JS实现去除数组中重复json的方法示例
2017/12/21 Javascript
vue 虚拟dom的patch源码分析
2018/03/01 Javascript
JavaScript DOM元素常见操作详解【添加、删除、修改等】
2018/05/09 Javascript
vuex + axios 做登录验证 并且保存登录状态的实例
2018/09/16 Javascript
Antd-vue Table组件添加Click事件,实现点击某行数据教程
2020/11/17 Javascript
JavaScript canvas实现文字时钟
2021/01/10 Javascript
Python批量重命名同一文件夹下文件的方法
2015/05/25 Python
Python的Django框架中forms表单类的使用方法详解
2016/06/21 Python
Python设置在shell脚本中自动补全功能的方法
2018/06/25 Python
Python 批量读取文件中指定字符的实现
2020/03/06 Python
解决import tensorflow as tf 出错的原因
2020/04/16 Python
sklearn和keras的数据切分与交叉验证的实例详解
2020/06/19 Python
Python 爬虫批量爬取网页图片保存到本地的实现代码
2020/12/24 Python
Linux操作面试题
2015/02/11 面试题
介绍一下Python下range()函数的用法
2013/11/07 面试题
生物化工专业个人自荐信
2013/09/26 职场文书
中国好声音广告词
2014/03/18 职场文书
酒店节能降耗方案
2014/05/08 职场文书
初中数学教学随笔
2015/08/15 职场文书
跟班学习心得体会(共6篇)
2016/01/23 职场文书
医德医风学习心得体会
2016/01/25 职场文书
离婚协议书范本(2016最新版)
2016/03/18 职场文书
python字符串常规操作大全
2021/05/02 Python