본문 바로가기

분류 전체보기

(505)
Unix C 시스템 시간출력 예제 #include #include char *current_time( void ) { static char time_str[ 64 ]; time_t *p_time = NULL ; struct tm *p_tm = NULL ; struct timeval tv ; gettimeofday(&tv, NULL); p_time = (time_t *)&(tv.tv_sec); p_tm = localtime(p_time); sprintf( time_str, "%04d%02d%02d %02d%02d%02d.%02ld", p_tm->tm_year+1900, p_tm->tm_mon+1, p_tm->tm_mday, p_tm->tm_hour, p_tm->tm_min, p_tm->tm_sec, tv.tv_usec/10000 ); re..
원초적 시간 구하기 ㅋㅋㅋㅋㅋㅋㅋ #include #include #include #include void swaptime(time_t, char *); int main() { int i; time_t the_time; char buffer[255]; // 현재 TIME 을 구한다. time(&the_time); printf("현재 시간은 %d 초\n", the_time); // 보기좋은 지역시간대로 바꾼다. swaptime(the_time, buffer); printf("%s\n", buffer); } void swaptime(time_t org_time, char *time_str) { struct tm *tm_ptr; tm_ptr = localtime(&org_time); sprintf(time_str, "%d/%d/%d %d:%d..
메시지큐 사용예제 #include #include #include #include struct _msgbuf { long msgtype; char mtext[256]; char myname[16]; int seq; };int main() { key_t key_id; int i; struct _msgbuf mybuf, rcvbuf; key_id = msgget((key_t)1234, IPC_CREAT|0666); if (key_id == -1) { perror("msgget error : "); exit(0); } printf("Key is %d\n", key_id); memset(mybuf.mtext, 0x00, 256); memset(mybuf.myname, 0x00, 16); memcpy(mybuf.mtext, "he..
Packet sniffer - libpcap사용 출처 : http://kldp.org/node/33279libpcap 쓰면 몇십줄이면 스니퍼 완성됩니다./* Packet sniffer * * (C) Copyright 2004 Lee J. H. * */ /* 사용법 : sniff */ /* * changelog * 2004/01/05 - pcap_loop()에서 pcap_dispatch()로 변경 * 시리얼 넘버관련 버그 수정 * perror()의 잘못된 구문을 수정 */ #include #include #include #include #include #include #include #define C_SNIFF #define CTRLC_ON 1 int main(int,char **); int create_file(char *); void exit_pro..
메시지 큐 - 프로세서간 통신 출처 : http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/system_programing/IPC/MessageQueue1 메시지 큐란 메시지큐는 메시지를 queue 데이타 구조 형태로 관리한다. 큐는 선입선출(먼저 들어간게 먼저 나오는) 데이타 구조를 말하며, 보통의 은행창구 혹은 일반적인 줄서기를 생각하면 된다. 이것은 흔히 FIFO(First in First Out)라고 불리운다(IPC 의 FIFO 설비와 혼동하지 말자). 이것과 반대되는 데이타 구조를 stack 이라고 하며, 큐와 반대로 가장 나중에 들어온게(가장 최근데이타) 먼저 나오는 형태를 가진다. 일반적인 배열을 접근방법에 따라 특수하게 분류한것이라고 생각하기 바란다. 메시지큐는 커널에서 전역..
비블럭킹 TCP 연결 예제 [출처] 비블럭킹 TCP 연결|작성자 장인정신mz_nonblockconnect비블럭킹 TCP 연결 #Non-blocking 연결은 생각보다 유용한 부분이 많은것 같습니다. 일반 connect 를 수행하면 상대방이 연결을 받아주지 않으면 무한정(대략 30초에서 2분) 대기상태로 빠지게 되는 단점이 있으나 Non-blocking 으로 connect 를 시도하면 제가 원하는 시간뒤에 빠져나올수 있어서 좋겠지요. 예제 # /* Code by JaeHyuk Cho */static int __MZ_Poll__(int s_Socket, int s_Event, int s_TimeOut){ /* s_TimeOut 0 ..
네트워크 프로그래밍 관련 문서들 네트워크 프로그래밍 관련 문서들좋은 내용들이 많이 들어 있군요.공개하신 분들 정말 고맙습니다.^^출처 : http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Network_Programing/Documents이름제목변경일크기AsyncIO비동기 입출력 2007/02/07 18:1757DomainAddress인터넷 주소 변환 2007/08/01 23:5814446HowStudyNetwork 프로그래밍 시작하기 2007/01/09 11:463987IntroTCPIP네트워크 프로그래밍 : TCP/IP 개론 2007/11/29 11:4914049IntroTCPIP2Tcp IP 개요 2 2007/10/20 11:0420283IntroTCPIP3TCP_IP 개요 3 200..
TCP/IP 네트웍 어플리케이션 문제발생과 해결 출처 : http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Network_Programing/Documents/Sockettimeout차례 1절. 소개 2절. 네트웍 어플리케이션 문제발생과 해결 2.1절. 테스트용 서버/클라이언트 준비 2.2절. 발생할수 있는 문제들 2.2.1절. 클라이언트 비정상 종료 2.2.2절. 네트웍 단절 2.2.3절. 어플리케이션의 비정상작동2.3절. 문제 해결 2.3.1절. 비정상종료 2.3.2절. 네트웍 단절 2.3.2.1절. alarm()의 이용 2.3.2.2절. select/poll 의 이용2.3.3절. 어플리케이션의 비정상작동1절. 소개서버 / 클라이언트 모델 구축을 위해서 우리는 보통 Socket API 를 사용하게 된다..