Un exemple clàssic de programació client-servidor és un xat en línia. En aquest cas, el client i el servidor es comuniquen per enviar i rebre missatges en temps real. Aquí tens un exemple bàsic de com es podria implementar en llenguatge Python utilitzant sockets:

Servidor:

import socket
import threading

def gestionar_client(sock_client):
    while True:
        try:
            # Rebre dades del client
            dades = sock_client.recv(1024).decode('utf-8')
            if dades:
                print(f"Missatge rebut del client: {dades}")

                # Enviar resposta al client
                resposta = "Missatge rebut pel servidor"
                sock_client.send(resposta.encode('utf-8'))
        except:
            break

    # Tancar la connexió amb el client
    sock_client.close()

def iniciar_servidor():
    # Configurar el servidor
    host = 'localhost'
    port = 8080

    # Crear un socket de servidor
    sock_servidor = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

    # Vincular el socket a l'adreça i port especificats
    sock_servidor.bind((host, port))

    # Escoltar connexions entrants
    sock_servidor.listen(5)
    print('Servidor escoltant a {}:{}'.format(host, port))

    while True:
        # Acceptar una connexió entrant
        sock_client, adr_client = sock_servidor.accept()
        print('Client connectat des de {}:{}'.format(adr_client[0], adr_client[1]))

        # Gestionar el client en un fil separat
        fil_client = threading.Thread(target=gestionar_client, args=(sock_client,))
        fil_client.start()

iniciar_servidor()

Client:

import socket

def iniciar_client():
    # Configurar el client
    host = 'localhost'
    port = 8080

    # Crear un socket de client
    sock_client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

    # Connectar al servidor
    sock_client.connect((host, port))

    while True:
        # Enviar missatge al servidor
        missatge = input('Introdueix un missatge: ')
        sock_client.send(missatge.encode('utf-8'))

        # Rebre resposta del servidor
        resposta = sock_client.recv(1024).decode('utf-8')
        print('Resposta del servidor:', resposta)

iniciar_client()

Aquest exemple mostra com un client es connecta al servidor utilitzant sockets TCP/IP. El client pot enviar missatges al servidor i rebre respostes. El servidor, d’altra banda, accepta connexions entrants, gestiona les sol·licituds dels clients en fils separats i respon a cada client de forma individual.