Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import time
- from socket import *
- HOST = '127.0.0.1'
- PORT = 55555
- serverAddress = (HOST, PORT)
- def createUDPSocket():
- # Create a UDP socket
- # Notice the use of SOCK_DGRAM for UDP packets
- clientSocket = socket(AF_INET, SOCK_DGRAM)
- # connect the client socket to IP address and port number to used by the server socket
- clientSocket.connect(serverAddress)
- # set timeout to 1s
- clientSocket.settimeout(1)
- return clientSocket
- def sendUDPPacket(clientSocket):
- amountOfPacketLoss = 0
- averageRTT = 0
- # send a test message
- for i in range(10):
- # the packet is first sent
- sendTime = time.time()
- stringToSend = 'Ping ' + str(i + 1) + ' '
- encodedString = stringToSend.encode('utf-8')
- clientSocket.sendto(encodedString, serverAddress)
- try:
- # receive the echoed message and address from server
- echoedMessage, addr = clientSocket.recvfrom(1024)
- except timeout:
- print('Request Timed Out')
- amountOfPacketLoss += 1
- continue
- # the packet gets received
- recvTime = time.time()
- if (echoedMessage != ''):
- rtt = recvTime - sendTime
- # print the echoed message with the rtt
- print(echoedMessage.decode('utf-8') + f'{rtt * 1000:.3f}')
- averageRTT += rtt
- # calculate average RTT and packet loss rate
- averageRTT /= (10 - amountOfPacketLoss)
- packetLossRate = amountOfPacketLoss / 10
- print('Result:')
- print(f'Average RTT {averageRTT * 1000}')
- print(f'Packet loss rate {packetLossRate}')
- if __name__ == '__main__':
- clientSocket = createUDPSocket()
- sendUDPPacket(clientSocket)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement