saber que puertos puerto protocolo listado lista escucha ejemplos como caracteristicas c linux sockets tcp

que - protocolo udp caracteristicas



Determinar el número de puerto TCP al cual el cliente se unió (3)

Use la llamada getsockname () para obtener la dirección y el puerto del socket después de una conexión exitosa.

Editar: nombre del método correcto. ¡A veces no puedo copiar una palabra simple de una ventana a otra!

Creo un socket TCP sin preocuparme por el número de puerto para enlazar con [socket.sin_port = 0]. Sin embargo, más adelante si quiero imprimir el número de puerto del cliente, ¿cómo hago eso? La aplicación C del cliente (en Linux) crea muchos clientes que se conectan al servidor. Para depurar problemas, capturo el tráfico en etéreo. Pensé en imprimir el número de puerto en los registros mientras surge el problema, por lo que el filtrado en etéreo se vuelve fácil.

Cualquier ayuda sería apreciada.

-Prabhu


Creo que Darron se refería a getsockname() . Esto es lo que desea si necesita determinar el número de puerto en el lado del cliente (el lado que llama connect() ) programáticamente. En el lado del servidor (el lado que llama bind() ), usaría getpeername() para obtener la misma información del socket conectado.

Sin embargo, si está depurando y no puede cambiar el código, entonces termina usando cosas como la utilidad netstat o sockstat dependiendo del sistema operativo. No estoy seguro de qué utilidades están disponibles bajo Linux (o incluso su paquete particular) pero comenzaría con man sockstat . Si está instalado, puede ejecutarlo desde cualquier lado y ver qué puntos finales se han asignado a qué procesos. Combina esto con grep y normalmente podrás averiguar qué dirección filtrar en Ethereal. ¡Buena suerte!


lsof -p <process id> | grep TCP