cpp - Compruebe todos los zócalos abiertos en Linux OS
linux system library c (3)
/ proc / net / tcp - una lista de sockets de TCP abiertos
/ proc / net / udp -una lista de sockets udp abiertos
/ proc / net / raw -una lista de todos los sockets ''raw''
Estos son los archivos, use el comando cat
para verlos. Por ejemplo:
cat /proc/net/tcp
También puede utilizar el comando lsof
.
lsof es un comando que significa "lista de archivos abiertos", que se usa en muchos sistemas similares a Unix para informar una lista de todos los archivos abiertos y los procesos que los abrieron.
Mi programa abre un socket con esta función:
sockfd = socket (AF_INET, SOCK_RAW, IPPROTO_ICMP)
Después de terminar de enviar los datos se cierra el zócalo:
cerrar (sockfd);
Pero el problema es cuando el programa no se ejecuta bien y está bloqueando. De este modo el zócalo no se cerrará.
¿Cómo puedo verificar todos los sockets abiertos bajo el sistema operativo Linux?
Puedes usar el comando netstat
netstat - escucha
Para visualizar puertos abiertos y conexiones TCP establecidas,
netstat -vatn
Para mostrar solo los puertos UDP abiertos, pruebe el siguiente comando:
netstat -vaun
También puedes usar la utilidad ss para volcar estadísticas de sockets.
Para volcar resumen:
ss -s
Total: 91 (kernel 0)
TCP: 18 (estab 11, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 0
Transport Total IP IPv6
* 0 - -
RAW 0 0 0
UDP 4 2 2
TCP 18 16 2
INET 22 18 4
FRAG 0 0 0
Para mostrar todos los sockets:
ss -a
Para mostrar sockets UDP:
ss -u -a
Para visualizar sockets TCP:
ss -t -a
Aquí puedes leer ss man: ss