なにも見ずに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 )

ッて言うことか…

広告を非表示にする