프로그래밍

 3198, 1/160 회원가입  로그인  
   h@cking2013
   소켓 프로그래밍 에러!!

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=6443 [복사]


안녕하세요.
뇌를 자극하는 tcp/ip소켓 프로그래밍 이라는 책으로 공부를 하고 있습니다.
책 105페이지에 있는 예제를 컴파일해서 실행하니까 255.255.255.255에서 계속 연결이 온다고 뜹니다.
------------------------------------------------echo_server.c----------------------------------------------------
#include <sys/socket.h>
#include <sys/stat.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#define MAXBUF 1024
int main(int argc, char **argv)
{
  int server_sockfd, client_sockfd;
  int client_len, n;
  int ahfma;
  char buf[MAXBUF];
  struct sockaddr_in clientaddr, serveraddr;
  client_len = sizeof(clientaddr);
  if((server_sockfd=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP)==-1))
    {
      perror("socket error:");
      exit(0);
    }
    bzero(&serveraddr, sizeof(serveraddr));
    serveraddr.sin_family=AF_INET;
    serveraddr.sin_addr.s_addr=htonl(INADDR_ANY);
    serveraddr.sin_port=htons(atoi(argv[1]));
    bind(server_sockfd,(struct sockaddr *)&serveraddr,sizeof(serveraddr));
    listen(server_sockfd,5);
    while(1)
      {
        memset(buf,0x00,MAXBUF);
        client_sockfd=accept(server_sockfd,(struct sockaddr *)&clientaddr, &client_len);
        printf("New Client Connect:%s\n",inet_ntoa(clientaddr.sin_addr));
        if((n=read(client_sockfd,buf,MAXBUF))<=0)
          {
            close(client_sockfd);
            continue;
          }
        printf("%s\n",buf);
        if(write(client_sockfd, buf, MAXBUF)<=0)
          {
            perror("write error:");
            close(client_sockfd);
          }
        close(client_sockfd);
      }
    close(server_sockfd);
    return 0;
    }
------------------------------------------------실행 결과------------------------------------------
$./echo_server 3500
New Client Connect:255.255.255.255
New Client Connect:255.255.255.255
New Client Connect:255.255.255.255
New Client Connect:255.255.255.255
New Client Connect:255.255.255.255
New Client Connect:255.255.255.255
New Client Connect:255.255.255.255
.
.
.
.
.
.
.
----------------------------------------------------------------------------------------------------------
어떤 부분에 문제가 있는건가요?


  Hit : 5960     Date : 2014/02/24 10:18



    
indra if((server_sockfd=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP)==-1))

이 부분을 이렇게 바꿔보세요

if((server_sockfd=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP))==-1)
2014/02/24  
h@cking2013 그 부분을 고치니까 정상적으로 되는군요.

감사합니다.
2014/02/25