본문 바로가기

소켓 프로그래밍 예제소스

[2009/06/24] 좀비 프로세스 예제(zombie.c, wait.c, waitpid.c) /* zombie.c */ #include #include #include int main(int argc, char **argv) { pid_t pid; int data=10; pid=fork(); if(pid 더보기
[2009/06/23] 예제소스(fork.c) /* fork.c */ #include #include #include int main(int argc, char **argv) { pid_t pid; int data=10; pid=fork(); if(pid==-1) printf("fork 실패, 프로세스 id : %d \n", pid); printf("fork 성공, 프로세스 id : %d \n", pid); if(pid==0) /* 자식 프로세스라면 */ data+=10; else /* 부모 프로세스라면 */ data-=10; printf("data : %d \n", data); return 0; } 더보기
[2009/06/22] Nagle 예제소스(nagle.c) /* nagle.c */ #include #include #include #include #include #include #include #define TRUE 1 #define FALSE 0 int main(int argc, char **argv) { int sock; int state, opt_val, opt_len; sock=socket(PF_INET, SOCK_STREAM, 0); /* 디폴트 nagle 알고리즘 설정 상태 확인 */ state = getsockopt(sock, IPPROTO_TCP, TCP_NODELAY, &opt_val, &opt_len); if(state) { puts("getsockopt() error!"); exit(1); } printf("디폴트 nagle 알고리즘 : .. 더보기
[2009/06/22] TIME-WAIT 예제소스(reuseaddr.c) /* reuseaddr.c */ #include #include #include #include #include #include #include #define TRUE 1 #define FALSE 0 void error_handling(char *message); int main(int argc, char **argv) { int serv_sock; int clnt_sock; char message[30]; int str_len; int option; socklen_t optlen; struct sockaddr_in serv_addr; struct sockaddr_in clnt_addr; int clnt_addr_size; if(argc!=2){ printf("Usage : %s \n", argv[0]).. 더보기
[2009/06/22] 옵션 예제소스(sock_type.c, set_buf.c, get_buf.c, get_buf_win.c) /* sock_type.c */ #include #include #include #include #include #include void error_handling(char *message); int main(int argc, char **argv) { int tcp_sock, udp_sock; int sock_type=-1; socklen_t optlen; int state; optlen=sizeof(sock_type); tcp_sock=socket(PF_INET, SOCK_STREAM, 0); udp_sock=socket(PF_INET, SOCK_DGRAM, 0); printf("SOCK_STREAM : %d \n", SOCK_STREAM); printf("SOCK_DGRAM : %d \n", SOC.. 더보기