logo para rammsesitic

TCP Server


¿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

TCP_Server.py
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.