분류 전체보기 썸네일형 리스트형 네트워크 프로그래밍 TIME_WAIT 제거 TIME_WAIT 에 대해서 만들어진 TCP연결이 종료되기 위해서는 FIN패 킷 교환이 이루어진다. 이때 우아한 종료가 이루어지기 위해서는 총 4번의 패킷교환이 필요하게 된다. 우아한 종료라는 것은 연결된 호스트 양쪽이 모두 연결이 종료되었음을 알게 되는 상태다. 만약 FIN 패킷을 보냈는데, 상대 호스트에서 ACK 패킷을 보내지 않고 종료해버리는 경우 FIN을 보낸측은 우아한 종료를 위해서 일정시간 ACK를 기다리게 된다. 리눅스의 경우 대략 90초 정도를 기다린다. netstat(1)로 확인해 보면 TIME_WAIT인 상태로 나타난다. TIME_WAIT상태일 경우 해당 포트를 계속 점유하는데, 연결이 빈번한 네트워크 서비스일 경우 연결거부와 관련된 문제가 발생할 수 있다. TIME_WAIT 문제 발생.. 더보기 컴파일러별 소켓 설정 옵션 소켓 기반 네트워크 프로그래밍에서는 패킷을 전송하고 수집하기 위해 직접 네트워크 인터페이스 장치를 접근할 필요가 없다. 대신, 네트워크와의 프로그래밍 인터페이스를 처리해줄 중간 단계의 파일 기술자를 생성하여 사용한다. 네트워크 연결을 참조하는데 사용하는 특정 파일 기술자를 소켓(socket)이라 부른다. 네트워크 연결 또는 유닉스 프로세스간 통신(IPC : InterProcess? Communication) 파이프와 같은 특정 통신 영역 스트림 또는 데이터그램과 같은 특정 통신 타입 TCP 또는 UDP 와 같은 특정 프로토콜 유닉스 기반 소켓int socket(int domain, int type, int protocol) domain값 설명 PF_UNIX 유닉스 IPC통신 PF_NET IPv4 인터넷 .. 더보기 Posix Thread Example 1 Posix Thread Example 작성자: mwyun(멍) 쓰레드 생성후 자동 종료하는 간단한 예제입니다. 2 pthread 예제1 2.1 pthread1.c 소스코드 #include #include #include pthread_t threads[5]; int done[5]; void *thread_main(void *); int main(void) { int i; int rc; int status; printf("pid=%d\n", getpid()); for (i = 0; i < 5; i++) { done[i] = 0; pthread_create(&threads[i], NULL, &thread_main, (void *)i); printf("%d, %d\n", i, threads[i]); } f.. 더보기 pthread server 예제 server.c #include #include #include #include #include #include #include #include #include #define BUFSIZE 100 void *clnt_connection( void* args ); void send_message( char* message , int len ); void error_handling( char* message ); int clnt_number = 0; int clnt_socks[10]; pthread_mutex_t mutx; int main( int argc , char** argv ) { int serv_sock; int clnt_sock; struct sockaddr_in serv_addr; struct .. 더보기 컴파일 과정 & gcc 옵션 요약 -o 옵션 : gcc에서 만들 실행 파일명을 정하는 것. 안지정하면 a.out %gcc -o filter filter_driver.c define_stack.c global_var.c -c 옵션 : 컴파일하지만 링크하지는 않는 다는 것을 의미 %gcc -c filter_driver.c -D 옵션 : 소스코드의 #define 문과 같다. 심볼에 대한 값을 지정 % gcc -c -DDOC_FILE=\"info\" -DUSE_POLL filter_driver.c 첫 번째 -D 옵션은 DOC_FILE 을 info 라는 문자열로 대치한다는 것 두 번째 -D 옵션은 USE_POLL 심볼을 정의한다. -I 옵션 : 헤더파일이 위치한 디렉토리 지정 % gcc -c -I../headers filter_driver.c -.. 더보기 Network Programming 개발 참조사이트 링크 1 유용한 테스트 사이트 # http://www.speedguide.net/analyzer.php - 현재 사용중인 PC나 시스템에 대한 네트워크 정보(IP주소등등)를 보여준다. http://www.dslreports.com/tools - 포트스켄과 같은 네트워크 관련 테스트를 실행해준다. [edit] 2 관련 서적 # Network Programming for Microsoft Windows 2판 - Win32 소켓 프로그래밍을 하실려면 꼭 가지고 있어야할 바이블입니다. 좀 비쌉니다. T_T; TCP/IP 소켓 프로그래밍 (C버전) - 소켓 프로그래밍을 처음 시작하시는 분들은 필독서입니다. UNIX/Win32겸용예제입니다만 다소 UNIX쪽에 치중한 면이 있습니다. [edit] 3 RFC # http:/.. 더보기 Pthread API Reference Pthread API Reference윤 상배 고친 과정 고침 0.9 2004년 6월 30일 12시 pthread 취소관련 api 추가 고침 0.8 2003년 10월 9일 12시 pthread 시그널 관련 api 추가 차례1. 소개2. 기본 쓰레드 함수2.1. pthread_create2.2. pthread_join2.3. pthread_detach2.4. pthread_exit2.5. pthread_cleanup_push2.6. pthread_cleanup_pop2.7. pthread_self3. 쓰레드 동기화 함수3.1. pthread_mutex_init3.2. pthread_mutex_destroy3.3. pthread_mutex_lock3.4. pthread_mutex_unlock3.5. pthr.. 더보기 바이트 오더링 (Byte Ordering) ...? htonl() 와 ntohl() 의 차이..? 우리의 컴퓨터 님은 내부적으로 데이타를 처리하는데 있어서 메모리에 데이타를 어떻게 저장하느냐에 따라 두 가지 형태로 분리 됩니다. Litte Endian 방식과 Big Endian 이 있지요~ 방식은... 우리가 많이 쓰는 인텔 계열의 80X86시스템에서 쓰는 방식인데. 데이타가 하위 바이트 부터 메모리에 적재 됩니다. 예를 들어, 16진수 01020304 가 적재 될때는 04030201의 형태가 되지요~ 이 방식의 순서를 호스트 오더링 ( Host Ordering ) 이라고 합니다. 방식은... 매킨토시 계열의 MC86000 의 계열에서 쓰는 방식이며, 데이타가 상위 바이트 부터 메모리에 적재 됩니다. 그래서 그대로 적재 되겠죠.. 이 방식의 .. 더보기 유용하게 사용하는 매크로 함수 #include // 최대값 구하기 #define MAX(a,b) ( (a) > (b) ) ? (a):(b) // 대문자로 #define UPCASE(c) (( (c)>='a' && (c)='A' && (c) 더보기 노턴 안티바이러스 오진시 (액티브X 차단, 다운 파일 삭제시) 설정으로 해결방법 참조] http://cafe.naver.com/malzero.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=71040& 1. 액티브X를 설치하거나 파일을 받을려는데 자꾸 노턴에서 삭제할 때 액티브X를 설치하거나 파일을 다운하려는데 이런 반갑지 않은 화면을 노턴이 자주 보여줄겁니다. (묻지도 따지지도 않고 훅 삭제해 버리는 노턴ㅜ) 이럴때는 다운로드 인텔리전스 기능을 해제해줍니다. 노턴을 실행시키고 빨갛게 표시된 부분을 클릭합니다. 얼마동안 정지시킬까 묻는데 영구적으로 선택합니다. 저 기능을 꺼버리면 혹시 위험하지 않을까 걱정하실 수도 있는데 국내환경에선 생각보다 오진이 많고 또 익스플로러9의 기능으로 어느정도 보완가능하기 때문에 크게 걱정할 필요는 없습니다. 익스플로러9.. 더보기 이전 1 2 3 4 5 ··· 7 다음