Assignment 2: UDP Pinger[课后作业]
Computer Networking : A Top-Down Approach 的课后作业.
要求: 基于UDP协议,实现一个Pinger工具. 服务端代码已经提供了,自己实现客户端的代码.
完整的题目链接: https://wenku.baidu.com/view/ed19e6cce2bd960591c677d2.html
服务端代码:
# UDPPingerServer.py
# We will need the following module to generate randomized lost packets
import random
from socket import *
# Create a UDP socket
# Notice the use of SOCK_DGRAM for UDP packets
serverSocket = socket(AF_INET, SOCK_DGRAM)
# Assign IP address and port number to socket
serverSocket.bind(('127.0.0.1', 9600))
while True:# Generate random number in the range of 0 to 10print('Waiting for Client!')rand = random.randint(0, 10)# Receive the client packet along with the address it is coming frommessage, address = serverSocket.recvfrom(1024)print(message)# Capitalize the message from the clientdata = message.upper()# If rand is less is than 4, we consider the packet lost and do not respondif rand < 4:continue# Otherwise, the server respondsserverSocket.sendto(data, address)
客户端代码
自己随手写的,还可以再完善下,也懒得改了,不过题目的基本要求已经达到了.
import time
from socket import *server_address = ('127.0.0.1', 9600)
count = 0message = b'python'
while count < 10:clientSocket = socket(AF_INET, SOCK_DGRAM)clientSocket.settimeout(1)clientSocket.sendto(message, server_address)start_time = time.clock()try:data, address = clientSocket.recvfrom(1024)if data:end_time = time.clock()print('Ping:', (end_time - start_time)*1000)print(data)count += 1except:continue
转载于:https://www.cnblogs.com/crb912/p/9082379.html
Assignment 2: UDP Pinger[课后作业]相关推荐
- matlab用lism求零输入响应,信号与系统matlab课后作业_北京交通大学讲解.docx
信号与系统matlab课后作业_北京交通大学讲解.docx 信号与系统MATLAB平时作业 学院 电子信息工程学院 班级 姓名 学号 教师 钱满义 MATLAB习题 M3-1 一个连续时间LTI系统满 ...
- JAVA语法基础 动手动脑及课后作业
动手动脑1: 仔细阅读示例: EnumTest.java,运行它,分析运行结果? public class EnumTest { public static void main(String[] ar ...
- 写在11期培训班第五次课后作业前面的话
本文内容简单,但是感觉对一些博友还是有参考警醒价值,因此,分享给支持老男孩的所有博友们,希望你们喜欢! 写在11期培训班第五次课后作业前面的话: 作为运维过来人,老男孩总希望能多给大家讲一点成功 ...
- day 13 课后作业
# -*- coding: utf-8 -*-# @Time : 2019/1/7 18:00# @Author : Endless-cloud# @Site : # @File : day 13 课 ...
- [课后作业] 第032讲:异常处理:你不可能总是对的
[课后作业] 第032讲:异常处理:你不可能总是对的 参考文章: (1)[课后作业] 第032讲:异常处理:你不可能总是对的 (2) 课后测试题 备忘一下.
- 吴恩达机器学习课后作业——偏差和方差
1.写在前面 吴恩达机器学习的课后作业及数据可以在coursera平台上进行下载,只要注册一下就可以添加课程了.所以这里就不写题目和数据了,有需要的小伙伴自行去下载就可以了. 作业及数据下载网址:吴恩 ...
- Python从入门到实践第9章课后作业
Python从入门到实践第9章课后作业 编写过程中不知道如何将列表传入子类中,下面实例中均没有使用 #9-1 # class Restaurant(): # """模拟饭 ...
- C++课后作业 6.教材习题5_7:利用静态变量统计小猫Cat的数量
文章目录 前引 原题题目 代码实现 验证结果 前引 y1s1 我确实对静态函数和静态成员用的比较少 除了前段时间 自己写一个多进程的toy_server的时候 为了让信号处理正常 自己用了single ...
- 小甲鱼31课泡菜课后作业反思
课后作业动动手: 0. 编写一个程序,这次要求使用pickle将文件(record.txt)里的对话按照以下要求腌制成不同文件(没错,是第29讲的内容小改,考考你自己能写出来吗?): 小甲鱼的对话单独 ...
最新文章
- CSS超出部分隐藏,显示滚动条
- 解决bootstrap-table多次请求只触发一次的问题
- Go语言构建json和解析json实例
- 萌新向Python数据分析及数据挖掘 第一章 Python基础 第三节 列表简介 第四节 操作列表...
- 【小白学习PyTorch教程】八、使用图像数据增强手段,提升CIFAR-10 数据集精确度...
- vue-router路由示例
- php redis 主从配置,Redis主从及其PHP扩展安装配置
- Maven精选系列--继承与聚合
- 一个风骚的C语言操作
- 【Leetcode1365】有多少小于当前数字的数字:详解
- mysql 定期删除表中无用数据
- Android ListView 获取Item的值和得到每一个Item的view对象以及得到他们所对应的控件值
- 【CART与GBDT】
- rpc调用和http调用有什么区别
- 都是热敏电阻,PTC和NTC的区别你真的知道吗?
- 51单片机-波特率的计算定时器初始值的计算
- idea groovy自定义自动生成实体 dao/mapper service等,支持表注释 字段注释
- opencv 打开摄像头
- boss是董卓的java游戏_武将列传世界BOSS董卓-殒命长安攻略
- 【CSS】页面背景的毛玻璃效果