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的迭代器和生成器使用实例
Jan 14 Python
Python判断变量是否为Json格式的字符串示例
May 03 Python
Python实现模拟分割大文件及多线程处理的方法
Oct 10 Python
python 将字符串转换成字典dict的各种方式总结
Mar 23 Python
对python多线程与global变量详解
Nov 09 Python
Python从单元素字典中获取key和value的实例
Dec 31 Python
获取Pytorch中间某一层权重或者特征的例子
Aug 17 Python
Python使用循环神经网络解决文本分类问题的方法详解
Jan 16 Python
Python计算公交发车时间的完整代码
Feb 12 Python
在keras下实现多个模型的融合方式
May 23 Python
Python paramiko使用方法代码汇总
Nov 20 Python
python3中celery异步框架简单使用+守护进程方式启动
Jan 20 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之第三天
2006/10/09 PHP
WordPress中制作导航菜单的PHP核心方法讲解
2015/12/11 PHP
CodeIgniter表单验证方法实例详解
2016/03/03 PHP
基于Jquery的$.cookie()实现跨越页面tabs导航实现代码
2011/03/03 Javascript
dojo学习第一天 Tab选项卡 实现
2011/08/28 Javascript
Kibo 用于处理键盘事件的Javascript工具库
2011/10/28 Javascript
JS读取XML文件示例代码
2013/11/15 Javascript
JS获取当前网页大小以及屏幕分辨率等
2014/09/05 Javascript
JavaScript中this详解
2015/09/01 Javascript
基于jQuery实现文本框只能输入数字(小数、整数)
2016/01/14 Javascript
NPM 安装cordova时警告:npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to
2016/12/20 Javascript
nodejs socket服务端和客户端简单通信功能
2017/09/14 NodeJs
vue的一个分页组件的示例代码
2017/12/25 Javascript
基于jQuery.i18n实现web前端的国际化
2018/05/04 jQuery
JavaScript原型链与继承操作实例总结
2018/08/24 Javascript
vuejs简单验证码功能完整示例
2019/01/08 Javascript
解决layui 三级联动下拉框更新时回显的问题
2019/09/03 Javascript
layui表单提交到后台自动封装到实体类的方法
2019/09/12 Javascript
python获取指定目录下所有文件名列表的方法
2015/05/20 Python
Python计算一个文件里字数的方法
2015/06/15 Python
python和shell监控linux服务器的详细代码
2018/06/22 Python
Python数据库小程序源代码
2019/09/15 Python
python 利用pyttsx3文字转语音过程详解
2019/09/25 Python
python实现b站直播自动发送弹幕功能
2021/02/20 Python
CSS3 实现童年的纸飞机
2019/05/05 HTML / CSS
css3实现小箭头各种图形效果
2020/07/08 HTML / CSS
HTML5 对各个标签的定义与规定:body的介绍
2012/06/21 HTML / CSS
HTML5新增的Css选择器、伪类介绍
2013/08/07 HTML / CSS
HTML5中判断横屏竖屏的方法(移动端)
2016/08/04 HTML / CSS
写好求职信第一句话的技巧
2013/10/26 职场文书
学校司机岗位职责
2013/11/14 职场文书
教学质量评估实施方案
2014/03/17 职场文书
爱心捐款倡议书
2014/04/14 职场文书
领导班子个人对照检查材料(群众路线)
2014/09/26 职场文书
纪委书记群众路线整改措施思想汇报
2014/10/09 职场文书
个人查摆问题自查报告
2014/10/16 职场文书