12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- import socket
- import threading
- class TCP_Client_1:
- def __init__(self, host, port):
- self.host = host
- self.port = port
- def request(self):
- client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- client.connect((self.host, self.port))
- client.send(b'GET / HTTP/1.1\r\nHost: google.com\r\n\r\n')
- response = client.recv(4096)
- print(response.decode())
- client.close()
- class UDP_Client_1:
- def __init__(self, host, port):
- self.host = host
- self.port = port
- def request(self):
- client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
- client.sendto(b'DFLJASLDF', (self.host, self.port))
- data, addr = client.recvfrom(4096)
- print(data.decode())
- client.close()
- class TCP_Server:
- def __init__(self, ip, port):
- self.ip = ip
- self.port = port
-
- def main(self):
- server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- server.bind((self.ip, self.port))
- server.listen(5)
- print(f'[*] Listening on {self.ip}:{self.port}')
- while True:
- client, address = server.accept()
- print(f'[*] Accepted connection from {address[0]}:{address[1]}')
- client_handler = threading.Thread(target=self.handle_client, args=(client,))
- client_handler.start()
- def handle_client(self, client_socket):
- with client_socket as sock:
- request = sock.recv(1024)
- print(f'[*] Received: {request.decode("utf-8")}')
- sock.send(b'ACK')
-
- def main():
- # client = TCP_Client_1('google.com', 80)
- # client.request()
- # client = UDP_Client_1('127.0.0.1', 9997)
- # client.request()
- server = TCP_Server('127.0.0.1', 80)
- server.main()
- if __name__ == '__main__':
- main()
|