소켓 통신 TCP-IP INET_NTOA란? 이것도 마찬가지로 데이터 타입이 UNSIGNED LONG 이므로, 주소 할당을 위해 십진수 표현방식 간에 변환 함수를 하용하여야 하며, 네트워크 32비트 값을 DDN 주소값으로 변환한다. #include #include #include int main(int argc, char *argv[]) { struct sockaddr_in addr1, addr2; char *str_ptr; char str_arr[20]; addr1.sin_addr.s_addr = htonl(0x1020304); addr2.sin_addr.s_addr = htonl(0x1010101); str_ptr = inet_ntoa(addr1.sin_addr); strcpy(str_arr, str..
소켓 통신 TCP-IP INET_ATON 네트워크의 주소 SOCKADDR_IN 구조체의 데이터 타입은 UNSINGED LONG인데 주소 할당을 위하여 십진수 표현방식간에 INET_ATON과 같은 변환 함수를 사용하여야 한다. #include #include #include void error_handling(char *message); int main(int argc, char *argv[]) { char *addr = "127.232.124.79"; struct sockaddr_in addr_inet; if(!inet_aton(addr, &addr_inet.sin_addr)) error_handling("Conversion error"); else printf("Network ordered intege..
INET_ADDR inet_addr() 함수란? 숫자와 점으로 이루어진 IP 문자열을 long형태의 숫자 IP 주소로 바꾸어 줍니다. 네트워크 소켓통신에서 사용됩니다. #include #include int main(int argc, char *argv[]) { char *addr1 = "1.2.3.4"; char *addr2 = "1.2.3.256"; unsigned long conv_addr = inet_addr(addr1); if(conv_addr == INADDR_NONE) printf("Error occured! \n"); else printf("Network ordered integer addr : %#lx \n", conv_addr); conv_addr = inet_addr(addr2); i..
#include #include #include #include #define NUM_THREAD 100 void * thread_inc(void * arg); void * thread_des(void * arg); long long num = 0; int main(int argc, char *argv[]) { pthread_t thread_id[NUM_THREAD]; int i; printf("sizeof long long: %d\n", sizeof(long long)); for(i = 0; i
TCP-IP 소켓통신 THREAD CHAPTER3 #include #include #include #include void* thread_main(void *arg); int main(int argc, char *argv[]) { pthread_t t_id; int thread_param = 5; void *thr_ret; if(pthread_create(&t_id, NULL, thread_main, (void*)&thread_param)!=0) { puts("pthread_create() error"); return -1; }; if(pthread_join(t_id, &thr_ret)!=0) { puts("pthread_join() error"); return -1; }; printf("Thread r..
TCP-IP 소켓통신 THREAD CHAPTER2 #include #include #include #include void* thread_main(void *arg); int main(int argc, char *argv[]) { pthread_t t_id; int thread_param = 5; void * thr_ret; if(pthread_create(&t_id, NULL, thread_main, (void*)&thread_param)!=0) { puts("pthread_create() error"); return -1; }; if(pthread_join(t_id, &thr_ret)!=0) { puts("pthread_join() error"); return -1; }; printf("Thread ..
TCP-IP 소켓통신 THREAD CHAPTER1 #include #include void* thread_main(void *arg); int main(int argc, char *argv[]) { pthread_t t_id; int thread_param=5; if(pthread_create(&t_id, NULL, thread_main, (void*)&thread_param)!=0) { puts("pthread_create() error"); return -1; }; sleep(10); puts("end of main"); return 0; } void* thread_main(void *arg) { int i; int cnt=*((int*)arg); for(i=0; i
receiver.c #include #include #include #include #include #include #define BUF_SIZE 30 void error_handling(char *message); int main(int argc, char *argv[]) { int recv_sock; int str_len; char buf[BUF_SIZE]; struct sockaddr_in adr; struct ip_mreq join_adr; if(argc!=3){ printf("Usage : %s \n", argv[0]); exit(1); } recv_sock = socket(PF_INET, SOCK_DGRAM, 0); memset(&adr, 0, sizeof(adr)); adr.sin_famil..
client.c #include #include #include #include #include #include #define BUF_SIZE 30 void error_handling(char *message); int main(int argc, char *argv[]) { int sock; char message[BUF_SIZE]; int str_len; socklen_t adr_sz; struct sockaddr_in serv_adr, from_adr; if(argc!=3) { printf("Usage : %s \n", argv[0]); exit(1); } sock = socket(PF_INET, SOCK_DGRAM, 0); if(sock ==-1) error_handling("socket() err..
client.c #include #include #include #include #include #include #define BUF_SIZE 1024 #define RLT_SIZE 4 #define OPSZ 4 void error_handling(char *message); int main(int argc, char *argv[]) { int sock; char opmsg[BUF_SIZE]; int result, opnd_cnt, i; struct sockaddr_in serv_adr; if(argc!=3) { printf("Usage : %s \n", argv[0]); exit(1); } sock = socket(PF_INET, SOCK_STREAM, 0); if(sock ==-1) error_han..