tcp_client.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. import socket
  2. import threading
  3. class TCP_Client_1:
  4. def __init__(self, host, port):
  5. self.host = host
  6. self.port = port
  7. def request(self):
  8. client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  9. client.connect((self.host, self.port))
  10. client.send(b'GET / HTTP/1.1\r\nHost: google.com\r\n\r\n')
  11. response = client.recv(4096)
  12. print(response.decode())
  13. client.close()
  14. class UDP_Client_1:
  15. def __init__(self, host, port):
  16. self.host = host
  17. self.port = port
  18. def request(self):
  19. client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  20. client.sendto(b'DFLJASLDF', (self.host, self.port))
  21. data, addr = client.recvfrom(4096)
  22. print(data.decode())
  23. client.close()
  24. class TCP_Server:
  25. def __init__(self, ip, port):
  26. self.ip = ip
  27. self.port = port
  28. def main(self):
  29. server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  30. server.bind((self.ip, self.port))
  31. server.listen(5)
  32. print(f'[*] Listening on {self.ip}:{self.port}')
  33. while True:
  34. client, address = server.accept()
  35. print(f'[*] Accepted connection from {address[0]}:{address[1]}')
  36. client_handler = threading.Thread(target=self.handle_client, args=(client,))
  37. client_handler.start()
  38. def handle_client(self, client_socket):
  39. with client_socket as sock:
  40. request = sock.recv(1024)
  41. print(f'[*] Received: {request.decode("utf-8")}')
  42. sock.send(b'ACK')
  43. def main():
  44. # client = TCP_Client_1('google.com', 80)
  45. # client.request()
  46. # client = UDP_Client_1('127.0.0.1', 9997)
  47. # client.request()
  48. server = TCP_Server('127.0.0.1', 80)
  49. server.main()
  50. if __name__ == '__main__':
  51. main()