client.c 소스코드 #include #include #include #include #include #include #include #include #define BUF_SIZE 100 #define NAME_SIZE 20 void *send_msg(void * arg); void *recv_msg(void * arg); void error_handling(char *msg); char name[NAME_SIZE] = "[DEFAULT]"; char msg[BUF_SIZE]; int main(int argc, char *argv[]) { int sock; struct sockaddr_in serv_addr; pthread_t snd_thread, rcv_thread; void * thread_ret..
SERVER.C 라는 서버 코드 #include #include #include #include #include #include void error_handling(char *message); int main(int argc, char*argv[]) { int serv_sock; int clnt_sock; struct sockaddr_in serv_addr; struct sockaddr_in clnt_addr; socklen_t clnt_addr_size; char message[] = "Hello World!"; if(argc!=2) { printf("Usage : %s \n", argv[0]); exit(1); } serv_sock=socket(PF_INET, SOCK_STREAM, 0); if(se..
네트워크 프로그래밍이란 - 소켓을 기반으로 프로그래밍을 하기 때문에 소켓 프로그래밍이라고 한다. - 네트워크로 연결된 장치들의 데이터 송수신 프로그램의 작성을 의미함 전화를 이용한 설명 (1) 전화 받는 소켓의 생성 ex) int socket (~~); - 소켓은 전화기로 생각하면 쉽다. - " socket함수 호출로 생성한다. (2) 전화번호의 부여 ex) int bind (~~); - 소켓의 주소할당 및 연결 - " 주소 정보는 IP와 PORT번호로 구성된다. (3) 전화기 연결 ex) int listen(~~); - 연결요청이 가능한 상태의 소켓 (걸려오는 전화를 받을 수 있는 상태) - 전화를 거는 소켓은 연결 요청 가능 소켓이 될 필요가 없다. (걸려오는 전화를 받는 소켓에서 필요한 상태이므로)..