Skip to content

Instantly share code, notes, and snippets.

@devendranaga
Last active August 29, 2015 14:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save devendranaga/f66292ca15e1de614826 to your computer and use it in GitHub Desktop.
Save devendranaga/f66292ca15e1de614826 to your computer and use it in GitHub Desktop.
get the socket type (TCP / UDP)
#include <stdio.h>
#include <sys/socket.h>
int opt = -1;
socklen_t optlen = sizeof(opt);
int main(int argc, char **argv)
{
int type;
if (argc != 2) {
printf("%s <tcp / udp>\n", argv[0]);
return -1;
}
if (!strcasecmp(argv[1], "tcp")) {
type = SOCK_STREAM;
} else if (!strcasecmp(argv[1], "udp")) {
type = SOCK_DGRAM;
} else {
printf("%s <tcp / udp>\n", argv[0]);
return -1;
}
int sock;
sock = socket(AF_INET, type, 0);
if (sock < 0) {
return -1;
}
int ret;
ret = getsockopt(sock, SOL_SOCKET, SO_TYPE, &opt, &optlen);
if (ret < 0) {
close(sock);
return -1;
}
close(sock);
printf("sock type %d\n", opt);
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment