UDP Pinger Назначение - PullRequest
       47

UDP Pinger Назначение

0 голосов
/ 28 мая 2018

Я пытался закодировать клиент / сервер UDP на python (как видно внизу).Код работает и работает.Но я полагаю, что с строкой что-то не так:

    try:
        data, server = client_socket.recvfrom(1024) **# THIS LINE** 
        end = time.time()
        elapsed = end - start
        print(f'{data} {pings} {elapsed}')

Когда я запускаю код, он распечатывает счетчик, текущее время и «ЗАПРОС ВРЕМЕНИ» десять раз, как мне хотелось бык.Я не имею понятия почему!Я так много исследовал и пробовал чужой код, но ни один из них не работает!Пожалуйста помоги!

Сервер:

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 time
import socket

count = 0

for pings in range(10):
    client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    client_socket.settimeout(1.0)
    message = b'test'
    address = ("127.0.0.1", 12000)

    start = time.time()
    client_socket.sendto(message, address)

    count = count +1
    print(count, "\n", "current time: ", start)


    try:
        data, server = client_socket.recvfrom(1024)
        end = time.time()
        elapsed = end - start
        print(f'{data} {pings} {elapsed}')

    except socket.timeout:
        print('REQUEST TIMED OUT')
...