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 ip正则式
May 07 Python
wxPython事件驱动实例详解
Sep 28 Python
python中元类用法实例
Oct 10 Python
Python使用Paramiko模块编写脚本进行远程服务器操作
May 05 Python
python使用xslt提取网页数据的方法
Feb 23 Python
基于python requests库中的代理实例讲解
May 07 Python
使用tensorflow实现矩阵分解方式
Feb 07 Python
浅谈SciPy中的optimize.minimize实现受限优化问题
Feb 29 Python
面向新手解析python Beautiful Soup基本用法
Jul 11 Python
Python logging日志库空间不足问题解决
Sep 14 Python
python爬虫中PhantomJS加载页面的实例方法
Nov 12 Python
利用Python实现学生信息管理系统的完整实例
Dec 30 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
php的$_FILES的临时储存文件与回收机制实测过程
2013/07/12 PHP
ajax返回值中有回车换行、空格的解决方法分享
2013/10/24 PHP
php中mt_rand()随机数函数用法
2014/11/24 PHP
浅析THINKPHP的addAll支持的最大数据量
2015/02/03 PHP
prototype class详解
2006/09/07 Javascript
prototype 中文参数乱码解决方案
2009/11/09 Javascript
stream.js 一个很小、完全独立的Javascript类库
2011/10/28 Javascript
JavaScript实现的购物车效果可以运用在好多地方
2014/05/09 Javascript
jQuery老黄历完整实现方法
2015/01/16 Javascript
举例详解Python中smtplib模块处理电子邮件的使用
2015/06/24 Javascript
Vue.js组件tabs实现选项卡切换效果
2016/12/01 Javascript
JS中Select下拉列表类(支持输入模糊查询)功能
2017/01/17 Javascript
jQuery上传多张图片带进度条样式(DEMO)
2017/03/02 Javascript
详解nodejs中的process进程
2017/03/19 NodeJs
JS点击图片弹出文件选择框并覆盖原图功能的实现代码
2017/08/25 Javascript
vue实现城市列表选择功能
2018/07/16 Javascript
vue完成项目后,打包成静态文件的方法
2018/09/03 Javascript
js实现网页同时进行多个倒计时功能
2019/02/25 Javascript
JavaScript实现选项卡效果的分析及步骤
2019/04/16 Javascript
如何修改Vue打包后文件的接口地址配置的方法
2020/04/22 Javascript
js实现贪吃蛇小游戏(加墙)
2020/07/31 Javascript
[00:56]2014DOTA2国际邀请赛 DK、iG 赛前探访
2014/07/10 DOTA
编写多线程Python服务器 最适合基础
2018/09/14 Python
Python3.5常见内置方法参数用法实例详解
2019/04/29 Python
Python pandas.DataFrame 找出有空值的行
2019/09/09 Python
使用Python的datetime库处理时间(RPA流程)
2019/11/24 Python
谈一谈数组拼接tf.concat()和np.concatenate()的区别
2020/02/07 Python
Python 打印自己设计的字体的实例讲解
2021/01/04 Python
css3制作动态进度条以及附加jQuery百分比数字显示
2012/12/13 HTML / CSS
Tiqets英国:智能手机上的文化和娱乐门票
2019/07/10 全球购物
思想专业自荐信范文
2013/12/25 职场文书
幼儿园安全工作总结2015
2015/04/20 职场文书
郭明义电影观后感
2015/06/08 职场文书
2016暑期校本培训心得体会
2016/01/08 职场文书
创业计划书之废品回收
2019/09/26 职场文书