(Wie) Kann ich den Socket-Typ aus dem Socket-Deskriptor finden?

8

Ich schreibe ein Programm, um Socket-Netzwerkfluss zu erfassen, um Netzwerkaktivität anzuzeigen. Dafür habe ich mich gefragt, ob es irgendwie möglich ist, den Socket-Typ aus dem Socket-Deskriptor zu bestimmen.

Ich weiß, dass ich Socket-Familie mit getsockname finden kann, aber ich konnte keinen Weg finden, Socket-Typ zu finden.

Ich möchte zum Beispiel herausfinden, ob dieser Socket als UDP oder TCP geöffnet war. Danke für jede Beratung im Voraus.

YEH

    
YEH 10.07.2010, 03:06
quelle

1 Antwort

16

Da Sie getsockname erwähnen, nehme ich an, dass Sie über POSIX-Sockets sprechen.

Sie können den Socket-Typ ermitteln, indem Sie die Funktion getsockopt mit SO_TYPE aufrufen. Zum Beispiel:

%Vor%

Beachten Sie, dass mein Beispiel keine Fehlerprüfung durchführt. Sie sollten das beheben, bevor Sie es verwenden. Weitere Informationen finden Sie in den POSIX.1-Dokumenten für getsockopt () und sys/socket.h .

    
Sam Hanes 10.07.2010 08:39
quelle

Tags und Links