なにも見ずにserver_socket書こうとして…
何も見ずにserverをどこまで書けるか練習してみたら
#include<stdio.h> #include<sys/types.h> #include<sys/socket.h> #include<netdb.h> #include< int server_socket(const char *portnm){ int sockfd,errcode; struct addrinfo hints,*res0; char hbuf[NI_MAXHOST],sbuf[NI_MAXSERV]; (void)memset(&hints,NULL,sizeof(hints)); hints.ai_family = AF_INET; hints.socktype = SOCK_STREAM; hints.flags = PASSIVE; if ((errcode = getnaddrinfo(0,0,&hints,&res0)) == -1){ fprintf(stderr,"getaddrinfo():%d\n",gai_strerror(errcode)); freeaddrinfo(res0); exit(0); } if ((errcode = getnameinfo(res0->ai_addr,res0->ai_addrlen, hbuf,sizeof(hbuf), sbuf,sizeof(sbuf), NI_NUMERICHOST | NI_NUMERICSERV) == 0) = -1){ fprintf(stderr,"getnameinfo():%d\n",gai_strerror(errcode)); freeaddrinfo(res0); exit(0); } if ((sockfd = socket(res0->ai_family,res0->ai_socktype,ai_protocol)) == -1){ fprintf(stderr,"socket():%d\n",gai_strerror(errcode)); freeaddrinfo(res0); (void)close(sockfd); exit(0); } if (( }
ぐらいまでしか書けませんでした…
もっとやらんと…。
〜メモ〜
struct sockaddr *res0; struct sockaddr_storage from; (res0->ai_sockaddr,res0->ai_addrlen) == ( (struct sockaddr *) &from ,len )
ッて言うことか…