如何在Python中修改我的代码

时间:2016-12-09 22:06:13

标签: python udp ping python-3.5

我正在使用UDP Pinger Lab

这是说明中的完整问题:

  

目前,该程序计算每个数据包的往返时间并单独打印出来。修改此项以符合标准ping程序的工作方式。您需要在客户端的所有ping结束时报告最小,最大和平均RTT。另外,计算丢包率(百分比)。

在开始这部分工作之前,我必须创建一个客户端Python代码,该代码包含给我的服务器代码。

以下是给我的服务器代码:

import random
from socket import *

serverSocket = socket(AF_INET, SOCK_DGRAM)

serverSocket.bind(('', 12000))

while True:

    rand = random.randint(0, 10)

    message, address = serverSocket.recvfrom(1024)

    message = message.upper()

    if rand < 4:
        continue
    serverSocket.sendto(message, address)

这是我的客户端代码,它在命令提示符下工作:

import socket 
import time

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 
server_addr = ('localhost', 12000) 
sock.settimeout(1) 

try: 
    for i in range(1, 11): 
        start = time.time() 
    message = 'Ping #' + str(i) + " " + time.ctime(start) 
    try: 
        sent = sock.sendto(message.encode(), server_addr) 
        print("Sent " + message) 
        data, server = sock.recvfrom(1024) 
        print("Received " + data.decode()) 
        end = time.time(); 
        elapsed = end - start 
        print("RTT: " + str(elapsed) + " seconds\n") 

    except socket.timeout: 
        print("#" + str(i) + " Requested Timed Out\n")

finally: 
    print("closing socket") 
    sock.close() 

0 个答案:

没有答案