socket-programming:library
تفاوتها
تفاوت دو نسخهٔ متفاوت از صفحه را مشاهده میکنید.
| socket-programming:library [2024/06/18 00:32] – ایجاد شد pejman | socket-programming:library [2024/06/18 01:04] (فعلی) – حذف شد pejman | ||
|---|---|---|---|
| خط 1: | خط 1: | ||
| - | ====== کتابخانه توابع ====== | ||
| - | |||
| - | <code C> | ||
| - | |||
| - | // get sockaddr, IPv4 or IPv6: | ||
| - | void *get_in_addr(struct sockaddr *sa) | ||
| - | { | ||
| - | if (sa-> | ||
| - | return & | ||
| - | } | ||
| - | |||
| - | return & | ||
| - | } | ||
| - | |||
| - | </ | ||
| - | |||
| - | |||
| - | <code C> | ||
| - | #include < | ||
| - | #include < | ||
| - | #include < | ||
| - | #include < | ||
| - | #include < | ||
| - | #include < | ||
| - | #include < | ||
| - | |||
| - | int get_listener_socket(char *ipv4str, char *port) | ||
| - | { | ||
| - | int status, sockfd, sockopt; | ||
| - | struct addrinfo hints, *res, *rp; | ||
| - | |||
| - | memset(& | ||
| - | hints.ai_family = AF_INET; | ||
| - | hints.ai_socktype = SOCK_STREAM; | ||
| - | status = getaddrinfo(ipv4str, | ||
| - | if (status != 0) { | ||
| - | fprintf(stderr, | ||
| - | return -1; | ||
| - | } | ||
| - | |||
| - | for (rp = res; rp != NULL; rp = rp-> | ||
| - | sockfd = socket(rp-> | ||
| - | if (sockfd == -1) { | ||
| - | perror(" | ||
| - | continue; | ||
| - | } | ||
| - | |||
| - | sockopt = 1; | ||
| - | status = setsockopt(sockfd, | ||
| - | (void*)& | ||
| - | if (status == -1) { | ||
| - | perror(" | ||
| - | close(sockfd); | ||
| - | continue; | ||
| - | } | ||
| - | |||
| - | status = bind(sockfd, | ||
| - | if (status == -1) { | ||
| - | perror(" | ||
| - | close(sockfd); | ||
| - | continue; | ||
| - | } | ||
| - | |||
| - | break; | ||
| - | } | ||
| - | freeaddrinfo(res); | ||
| - | |||
| - | if (rp == NULL) { | ||
| - | return -1; | ||
| - | } | ||
| - | |||
| - | // BACKLOG 120 | ||
| - | status = listen(sockfd, | ||
| - | if (status == -1) { | ||
| - | perror(" | ||
| - | close(sockfd); | ||
| - | return -1; | ||
| - | } | ||
| - | |||
| - | return sockfd; | ||
| - | } | ||
| - | </ | ||
socket-programming/library.1718658168.txt.gz · آخرین ویرایش: 2024/06/18 00:32 توسط pejman
