En el post anterior implementamos la estructura de nuestro protocolo, en esta segunda parte veremos como utilizarlo.
Ahora vamos a implementar el envío y la recepción de paquetes con nuestro protocolo, por parte del servidor además explicaremos cómo evaluar los campos del protocolo para responder según el identificador de la pregunta. Por parte del cliente explicaremos cómo acceder a un field del protocolo y mostrarlo por pantalla.
Modificamos el main del cliente, quedando el código como se muestra a continuación:
client.py
def main(): try: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((TCP_IP, TCP_DPORT)) socketsr1 = StreamSocket(s, Pedro) packet_to_send = Pedro(direction=0, service=1)/PedroReqYourName(name_number=NAME) ans = socketsr1.sr1(packet_to_send, timeout=2, verbose=False) server_name = ans.getlayer("PedroRespYourName").sprintf("%own_name%") print('Server name: {}').format(server_name) s.close() except Exception as client_error: print('Error: {}').format(client_error)