51 lines
1.2 KiB
Python
Executable File
51 lines
1.2 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
import socket
|
|
import timeit
|
|
import sys
|
|
import time
|
|
|
|
tcp_server_adress = sys.argv[1] # expecting "www.perdu.com"
|
|
|
|
def print_sock_ctts(sock):
|
|
buffer = b""
|
|
data = sock.recv(4096)
|
|
while data:
|
|
buffer += data
|
|
data = sock.recv(4096)
|
|
print(buffer.decode())
|
|
|
|
def test_request_single_packet():
|
|
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
client.connect((f'{tcp_server_adress}', 8000))
|
|
t1 = timeit.default_timer()
|
|
request = b"GET / HTTP/1.0\r\nHost: "
|
|
request += tcp_server_adress.encode()
|
|
request += b"\r\n\r\n"
|
|
client.sendall(request)
|
|
print_sock_ctts(client)
|
|
client.close()
|
|
t2 = timeit.default_timer()
|
|
|
|
print(t2-t1)
|
|
|
|
def test_request_split_packet():
|
|
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
client.connect((f'{tcp_server_adress}', 8000))
|
|
t1 = timeit.default_timer()
|
|
request = b"GET / HTTP/1.0\r\nHost: "
|
|
client.sendall(request)
|
|
request = tcp_server_adress.encode()
|
|
request += b"\r\n\r\n"
|
|
client.sendall(request)
|
|
print_sock_ctts(client)
|
|
client.close()
|
|
t2 = timeit.default_timer()
|
|
|
|
print(t2-t1)
|
|
|
|
|
|
test_request_single_packet()
|
|
print("\n\t---\n")
|
|
time.sleep(1)
|
|
test_request_split_packet()
|