유닉스 소켓 프로그래밍

redott의 이미지

간단한 소켓 프로그래밍을 하고 있는데요,

connect부분에서 Invalid argument 에러가 발생합니다.

resource는 localhost로 입력받아서 실행했습니다.

다른 예제들 살펴봐도 같은 방식으로 되어있는것 같던데, 뭐가 문젠지 모르겠네요..

  static int sockfd;
  static struct sockaddr_in server;
  struct hostent *host;
 
  server.sin_family = AF_INET;
  server.sin_port = htons(PORT);
  memset((char *)&server, '\0', sizeof(server));
 
  sockfd = socket(AF_INET, SOCK_STREAM, 0);
  if(sockfd == -1){
    perror("socket");
    exit(1);
  }
  host = gethostbyname(resource);
  if(host == NULL){
    perror("gethostbyname");
    exit(1);
  }
  memcpy((char *)&server.sin_addr, host->h_addr, host->h_length);
  if(connect(sockfd, (struct sockaddr *)&server, sizeof(struct sockaddr_in)) == -1){
    perror("connect");
    exit(1);
  }
drinkme의 이미지

memset((char *)&server, '\0', sizeof(server));
server.sin_family = AF_INET;
server.sin_port = htons(PORT);

그리고, ip 주소도 넣어 주셔야죠.

charsyam의 이미지

memset((char *)&server, '\0', sizeof(server));

위치가 잘못되었네요.

위로 올리시길...

=========================
CharSyam ^^ --- 고운 하루
=========================

=========================
CharSyam ^^ --- 고운 하루
=========================