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
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:
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 .
Tags und Links c sockets networking