우선 헤더파일 선언..... #include <sys/socket.h> #include <sys/stat.h> #include <arpa/inet.h> #include <stdio.h> #include <string.h> #Include <unistd.h> sys/socket.h 헤더파일은 socket()함수, bind()함수, listen()함수, accept()함수를 사용하기 위해 선언을 해준다.. sys/socket.h 헤더파일 내부에 socket(), bind(), listen(), accept()함수들의 정의부분이 선언이 되있기 때문에 굳이 정의를 할 필요가 없다. string.h 헤더파일은 memset(), bzero() 함수. 메모리를 초기화 해주는 함수를 사용하기 위해선언. unistd.h 헤더파일은 read(), write(), close() 함수를 사용하기 위해선언 main문은 실행시 인자를 받을수 있게 argc, argv[]가 매개변수로 되어있다. 여기서 인자는... 바로 포트번호가 되겠다. 사용자가 원하는 포트를 열수 있게끔 ./파일이름 포트번호 이렇게 실행을하게 된다..... 11~14 행 inr server_sockfd, client_sockfd; 서버와 클라이언트의 소켓 지정 번호를 저장 하는 변수 int client_len,n ; 클라이언트의 길이를 저장하는 변수 char buf[MAXBUF]; 전송을 주고 받을수 있는 최대 길이, MAXBUF값이 1024이므로 1024개의 문자 만큼 받을수 있다. 16행 client_len= sizeof(clientaddr); 클라이언트의 길이를 저장, 어차피 struct sockaddr_in의 구조체에 저장 되있는 변수들의 총 합의 메모리 크기만큼 저장이 된다...