우선 헤더파일 선언.....   #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의 구조체에 저장 되있는 변수들의 총 합의 메모리 크기만큼 저장이 된다...