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[课后作业]相关推荐

  1. matlab用lism求零输入响应,信号与系统matlab课后作业_北京交通大学讲解.docx

    信号与系统matlab课后作业_北京交通大学讲解.docx 信号与系统MATLAB平时作业 学院 电子信息工程学院 班级 姓名 学号 教师 钱满义 MATLAB习题 M3-1 一个连续时间LTI系统满 ...

  2. JAVA语法基础 动手动脑及课后作业

    动手动脑1: 仔细阅读示例: EnumTest.java,运行它,分析运行结果? public class EnumTest { public static void main(String[] ar ...

  3. 写在11期培训班第五次课后作业前面的话

       本文内容简单,但是感觉对一些博友还是有参考警醒价值,因此,分享给支持老男孩的所有博友们,希望你们喜欢! 写在11期培训班第五次课后作业前面的话: 作为运维过来人,老男孩总希望能多给大家讲一点成功 ...

  4. day 13 课后作业

    # -*- coding: utf-8 -*-# @Time : 2019/1/7 18:00# @Author : Endless-cloud# @Site : # @File : day 13 课 ...

  5. [课后作业] 第032讲:异常处理:你不可能总是对的

    [课后作业] 第032讲:异常处理:你不可能总是对的 参考文章: (1)[课后作业] 第032讲:异常处理:你不可能总是对的 (2) 课后测试题 备忘一下.

  6. 吴恩达机器学习课后作业——偏差和方差

    1.写在前面 吴恩达机器学习的课后作业及数据可以在coursera平台上进行下载,只要注册一下就可以添加课程了.所以这里就不写题目和数据了,有需要的小伙伴自行去下载就可以了. 作业及数据下载网址:吴恩 ...

  7. Python从入门到实践第9章课后作业

    Python从入门到实践第9章课后作业 编写过程中不知道如何将列表传入子类中,下面实例中均没有使用 #9-1 # class Restaurant(): # """模拟饭 ...

  8. C++课后作业 6.教材习题5_7:利用静态变量统计小猫Cat的数量

    文章目录 前引 原题题目 代码实现 验证结果 前引 y1s1 我确实对静态函数和静态成员用的比较少 除了前段时间 自己写一个多进程的toy_server的时候 为了让信号处理正常 自己用了single ...

  9. 小甲鱼31课泡菜课后作业反思

    课后作业动动手: 0. 编写一个程序,这次要求使用pickle将文件(record.txt)里的对话按照以下要求腌制成不同文件(没错,是第29讲的内容小改,考考你自己能写出来吗?): 小甲鱼的对话单独 ...

最新文章

  1. CSS超出部分隐藏,显示滚动条
  2. 解决bootstrap-table多次请求只触发一次的问题
  3. Go语言构建json和解析json实例
  4. 萌新向Python数据分析及数据挖掘 第一章 Python基础 第三节 列表简介 第四节 操作列表...
  5. 【小白学习PyTorch教程】八、使用图像数据增强手段,提升CIFAR-10 数据集精确度...
  6. vue-router路由示例
  7. php redis 主从配置,Redis主从及其PHP扩展安装配置
  8. Maven精选系列--继承与聚合
  9. 一个风骚的C语言操作
  10. 【Leetcode1365】有多少小于当前数字的数字:详解
  11. mysql 定期删除表中无用数据
  12. Android ListView 获取Item的值和得到每一个Item的view对象以及得到他们所对应的控件值
  13. 【CART与GBDT】
  14. rpc调用和http调用有什么区别
  15. 都是热敏电阻,PTC和NTC的区别你真的知道吗?
  16. 51单片机-波特率的计算定时器初始值的计算
  17. idea groovy自定义自动生成实体 dao/mapper service等,支持表注释 字段注释
  18. opencv 打开摄像头
  19. boss是董卓的java游戏_武将列传世界BOSS董卓-殒命长安攻略
  20. 【CSS】页面背景的毛玻璃效果

热门文章

  1. IDEA spring找不到bean,找不到xml文件
  2. [硬件选型] 光源及照明方式的选择
  3. C++程序设计语言导论
  4. python中使用ffmpeg进行视频指定时长截断(解决剪切后音视频不同步的问题)
  5. 网络传输中的数据长度
  6. 时间都去哪儿了——2014年总结
  7. 为什么《王者荣耀》的音乐让人过耳不忘? 天美讲述游戏音频设计背后的故事
  8. 2020牛客暑期多校训练营(第六场)E——Easy Construction
  9. python转盘抽奖_Python使用Tkinter实现转盘抽奖器的步骤详解
  10. 自媒体视频剪辑中的那些素材到哪里找?