¿Qué es un TCP Server?
Es un programa que queda a la escucha de conexiones entrantes por partes de clientes bajo el protocolo de control de transmision (TCP), su trabajo es aceptar conexiones, recibir datos, procesarlos y responder. A continuacion muestro un ejemplo en python
import socket
import threading
IP = '0.0.0.0'
PORT = 9998
def main():
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((IP, PORT))
server.listen(5)
print(f'[*] Listening on {IP}:{PORT}')
while True:
client, address = server.accept()
print(f'[*] Accepted connection from {address[0]}:{address[1]}')
client_handler = threading.Thread(target=handle_client, args=(client,))
client_handler.start()
def handle_client(client_socket):
with client_socket as sock:
request = sock.recv(1024)
print(f'[*] Received: {request.decode("utf-8")})
sock.send(b'ACK')
if __name__ = '__main__':
main()Es un código sencillo de entender, importamos socket para manejar el servidor y peticiones del cliente, tambien traemos threading para crear hilos por cada cliente conectado al servidor, especificamos la dirección IP y puerto en las variables correspondientes. Continuamos a la función main, donde inicializamos el servidor con protocolo IPv4 y elegimos que se va a trabajar con el protocolo TCP, iniciamos la conexion a la dirección IP y puerto especificado anteriormente e inicamos la escucha del servidor limitando la fila de espera a 5 conexiones. Posteriormente nos encontramos con un bucle while dónde recibimos el socket del cliente y su dirección IP junto a su puerto. Iniciamos un nuevo hilo con el socket del cliente y la función handle_client, la cual confirma que se ha recibido data con un maximo de 1024 bytes para finalmente devolver el mensaje "ACK" para confirmar el recibimiento al cliente.
