42 lines
1.0 KiB
Python
42 lines
1.0 KiB
Python
#!/usr/bin/env python
|
|
import socket
|
|
import timeit
|
|
|
|
tcp_server_adress = sys.argv[1] # expecting "www.perdu.com"
|
|
|
|
def print_sock_ctts():
|
|
buffer = b""
|
|
data = sock.recv(4096)
|
|
while data:
|
|
buffer += data
|
|
data = sock.recv(4096)
|
|
print(buffer.decode())
|
|
|
|
def test_request_single_packet():
|
|
sock.connect((f'{tcp_server_adress}', 80))
|
|
request = b"GET / HTTP/1.1\r\nHost: " + tcp_server_adress.encode() + b"\r\n\r\n")
|
|
sock.sendall(request.)
|
|
print_sock_ctts()
|
|
sock.close()
|
|
|
|
def test_request_split_packet():
|
|
sock.connect((f'{tcp_server_adress}', 80))
|
|
request = b"GET / HTTP/1.1\r\nHost: "
|
|
sock.sendall(request)
|
|
request = tcp_server_adress.encode() + "\r\n\r\n"
|
|
sock.sendall(request)
|
|
print_sock_ctts()
|
|
sock.close()
|
|
|
|
def time_test(function)
|
|
t1 = timeit.default_timer()
|
|
function()
|
|
t2 = timeit.default_timer()
|
|
|
|
print(t2-t1)
|
|
|
|
client_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
|
|
time_test(test_request_single_packet)
|
|
time_test(test_request_split_packet)
|