使用python编写udp协议的ping程序方法


Posted in Python onApril 22, 2018

服务器端

import random 
from socket import * 
serverSocket = socket(AF_INET, SOCK_DGRAM)#建立udp协议的socket连接 
serverSocket.bind(('', 12000)) 
while True: 
 rand = random.randint(0, 10)#生成随机数,模拟udp环境下的丢包 
 message, address = serverSocket.recvfrom(1024)#接收客户端发送的信息,应该传送ip地址比较好 
 message = message.upper() 
 if rand < 4: continue#如果随机数字小于4那么就模拟丢包,不进行回复 
 serverSocket.sendto(message, address)

客户端

from socket import * 
import time 
HOST = 'localhost' 
PORT = 12000 
clientSocket = socket(AF_INET, SOCK_DGRAM)#使用udp协议 
clientSocket.bind(('', 6000))#绑定端口6000, 也可以不绑定 
 
for i in range(0,10):#发出十次ping 
 try: 
  start_time = time.time()#从发出报文开始计时 
  clientSocket.sendto('A',(HOST, PORT))#发送报文给服务器 
  clientSocket.settimeout(1.0)#设置socket等待时间 
  message, address = clientSocket.recvfrom(1024)#recvfrom设置了一秒的时间限制 
  end_time = time.time()#结束时间 
  print "Ping %d %f"%(i, end_time-start_time)#得到ttl,并显示出来 
 except timeout:#如果超过时间,抛出一个timeout的错误 
  print "Resquest time out"

以上这篇使用python编写udp协议的ping程序方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现简单socket通信的方法
Apr 19 Python
Python中的连接符(+、+=)示例详解
Jan 13 Python
浅谈python中copy和deepcopy中的区别
Oct 23 Python
Python Unittest根据不同测试环境跳过用例的方法
Dec 16 Python
python多线程下信号处理程序示例
May 31 Python
详解python列表(list)的使用技巧及高级操作
Aug 15 Python
详解使用Python下载文件的几种方法
Oct 13 Python
Python多重继承之菱形继承的实例详解
Feb 12 Python
Keras自定义实现带masking的meanpooling层方式
Jun 16 Python
基于Keras的格式化输出Loss实现方式
Jun 17 Python
使用Python-OpenCV消除图像中孤立的小区域操作
Jul 05 Python
python修改微信和支付宝步数的示例代码
Oct 12 Python
python 实现判断ip连通性的方法总结
Apr 22 #Python
Python数据结构之哈夫曼树定义与使用方法示例
Apr 22 #Python
Python3实现爬取指定百度贴吧页面并保存页面数据生成本地文档的方法
Apr 22 #Python
Python3使用正则表达式爬取内涵段子示例
Apr 22 #Python
Python贪心算法实例小结
Apr 22 #Python
python 判断网络连通的实现方法
Apr 22 #Python
Python3之读取连接过的网络并定位的方法
Apr 22 #Python
You might like
Smarty Foreach 使用说明
2010/03/23 PHP
php使用curl模拟登录后采集页面的例子
2013/11/04 PHP
PHP输出缓存ob系列函数详解
2014/03/11 PHP
php数组键名技巧小结
2015/02/17 PHP
PHP中new static()与new self()的比较
2016/08/19 PHP
理清PHP在Linxu下执行时的文件权限方法
2017/06/07 PHP
laravel手动创建数组分页的实现代码
2018/06/07 PHP
使用git迁移Laravel项目至新开发环境的步骤详解
2020/04/06 PHP
javascript高亮效果的二种实现方法
2008/09/14 Javascript
JavaScript实现检查页面上的广告是否被AdBlock屏蔽了的方法
2014/11/03 Javascript
jQuery中change事件用法实例
2014/12/26 Javascript
jQuery 更改checkbox的状态,无效的解决方法
2016/07/22 Javascript
原生JS实现-星级评分系统的简单实例
2016/08/21 Javascript
javascript输出AscII码扩展集中的字符方法
2016/12/26 Javascript
使用JS获取SessionStorage的值
2018/01/12 Javascript
jQuery中图片展示插件highslide.js的简单dom
2018/04/22 jQuery
JS设置自定义快捷键并实现图片上下左右移动
2019/10/17 Javascript
Vue实现push数组并删除的例子
2019/11/01 Javascript
React.js组件实现拖拽排序组件功能过程解析
2020/04/27 Javascript
微信小程序实现多图上传
2020/06/19 Javascript
python sort、sorted高级排序技巧
2014/11/21 Python
Python中进程和线程的区别详解
2017/10/29 Python
Python K最近邻从原理到实现的方法
2019/08/15 Python
Python 使用 prettytable 库打印表格美化输出功能
2019/12/26 Python
Python环境下安装PyGame和PyOpenGL的方法
2020/03/25 Python
如何利用python web框架做文件流下载的实现示例
2020/06/02 Python
python3代码输出嵌套式对象实例详解
2020/12/03 Python
详解win10下pytorch-gpu安装以及CUDA详细安装过程
2021/01/28 Python
实例讲解利用HTML5 Canvas API操作图形旋转的方法
2016/03/22 HTML / CSS
超30万乐谱下载:Musicnotes.com
2016/09/24 全球购物
简短大学毕业感言
2014/01/18 职场文书
父亲八十大寿答谢词
2014/01/23 职场文书
单位收入证明范本
2015/06/18 职场文书
工作简报范文
2015/07/21 职场文书
2016年秋季运动会加油稿
2015/12/21 职场文书
MySQL之PXC集群搭建的方法步骤
2021/05/25 MySQL