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中的__new__特殊方法
Jun 02 Python
python 网络编程详解及简单实例
Apr 25 Python
Django查询数据库的性能优化示例代码
Sep 24 Python
python如何在循环引用中管理内存
Mar 20 Python
python调用百度语音识别实现大音频文件语音识别功能
Aug 30 Python
Python 创建新文件时避免覆盖已有的同名文件的解决方法
Nov 16 Python
python实现微信每日一句自动发送给喜欢的人
Apr 29 Python
python字符串和常用数据结构知识总结
May 21 Python
基于PyQT实现区分左键双击和单击
May 19 Python
python实现excel公式格式化的示例代码
Dec 23 Python
python 实现的车牌识别项目
Jan 25 Python
python如何获取网络数据
Apr 11 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加密算法之实现可逆加密算法和解密分享
2014/01/21 PHP
php+mysql删除指定编号员工信息的方法
2015/01/14 PHP
php实现随机显示图片方法汇总
2015/05/21 PHP
简要剖析PHP的Yii框架的组件化机制的基本知识
2016/03/17 PHP
thinkphp5.1 文件引入路径问题及注意事项
2018/06/13 PHP
阿里云的WindowsServer2016上部署php+apache
2018/07/17 PHP
PHP设计模式(四)原型模式Prototype实例详解【创建型】
2020/05/02 PHP
jscript之List Excel Color Values
2007/06/13 Javascript
使用jquery+CSS实现控制打印样式
2014/12/31 Javascript
kindeditor修复会替换script内容的问题
2015/04/03 Javascript
win7下安装配置node.js+express开发环境
2015/12/06 Javascript
NodeJS的Promise的用法解析
2016/05/05 NodeJs
Bootstrapvalidator校验、校验清除重置的实现代码(推荐)
2016/09/28 Javascript
js实现获取鼠标当前的位置
2016/12/14 Javascript
详解nodejs操作mongodb数据库封装DB类
2017/04/10 NodeJs
详解从零搭建 vue2 vue-router2 webpack3 工程
2017/11/22 Javascript
微信小程序获取用户信息并保存登录状态详解
2019/05/10 Javascript
JS扁平化输出数组的2种方法解析
2019/09/17 Javascript
JavaScript实现HTML导航栏下拉菜单
2020/11/25 Javascript
[48:23]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#1COL VS EG第一局
2016/03/05 DOTA
Python使用微信SDK实现的微信支付功能示例
2017/06/30 Python
利用python实现简单的循环购物车功能示例代码
2017/07/05 Python
Python基础语言学习笔记总结(精华)
2017/11/14 Python
Python数据结构之顺序表的实现代码示例
2017/11/15 Python
基于python requests库中的代理实例讲解
2018/05/07 Python
利用python在excel中画图的实现方法
2020/03/17 Python
keras小技巧——获取某一个网络层的输出方式
2020/05/23 Python
Python3 webservice接口测试代码详解
2020/06/23 Python
python爬虫 requests-html的使用
2020/11/30 Python
韩国三大免税店之一:THE GRAND 中文免税店
2016/07/21 全球购物
攀岩、滑雪、徒步旅行装备:Black Diamond Equipment
2019/08/16 全球购物
商务英语专业应届毕业生求职信
2013/10/28 职场文书
无传销社区工作方案
2014/05/13 职场文书
音乐之声音乐广播稿
2014/09/10 职场文书
企业开业庆典答谢词
2015/01/20 职场文书
全面盘点MySQL中的那些重要日志文件
2021/11/27 MySQL