분류 전체보기

    2013.07.09_TCP/IP를 Thread로 통신_

    TCPClient.c #include "smart.h" #define RCVBUFSIZE 500 void My_Memset(void *, unsigned char, unsigned int); void My_Bzero(void *, unsigned int); int main(int argc, char *argv[]) { int sock; struct sockaddr_in echoServAddr; char *servIP; char cBuff[RCVBUFSIZE]; int iRet; fd_set fs_status; if(1 == argc) { servIP = "192.168.10.58"; } else { servIP = argv[1]; } sock = socket(AF_INET, SOCK_STREAM, IPP..

    2013.07.08_Inter Process Communication(IPC)_활용.

    Intercom_Clnt #include #include #include #include #include #include #include #define FILE_SOCKET "../SMART.SOCKET" int main() { int iCSock; int iStructSize; struct sockaddr_un stSAddr; unsigned char ucData[255]; int iRet; iCSock = socket(AF_UNIX, SOCK_STREAM, 0); stSAddr.sun_family = AF_UNIX; strcpy(stSAddr.sun_path, FILE_SOCKET); iStructSize = sizeof(struct sockaddr_un); while(1) { iRet = conne..

    2013.07.04_멀티태스킹 테스트

    멀티태스킹 멀티태스킹 : fork() 함수를 이용하여서 1 Client 1 Server(자식서버) , 독립적인 1:1 형태로 통신을 하는 방법이다. fork() 함수란? 현재 실행되는 프로세스에 대해 복사본 프로세스를 생성합니다. fork()함수를 호출하고 성공하면 pid 변수값만 다른 완전히 똑 같은 프로세스가 생성됩니다. 그러므로 지금 프로그램이 원래 실행되었던 부모 프로세스인지, 아니면 새로 생성된 자식 프로세스인지는 fork()에서 반환한 값으로 확인합니다. 헤더 unistd.h 형태 pid_t fork(void); // 여기서 pid_t 는 unsigned int 형 반환 pid_t 실행에 실패하면 -1 을 반환. 부모에게는 새로 생성된 자식 프로세스 PID가 반환되며, 자식 프로세스에는 0이 ..

    2013.07.03_UDP_기타이론설명By종영이형

    시그널(SIGTERM), kill 명령 ☞ kill : 프로세스에 신호(종료신호)를 명시적으로 보낼때 사용하는 명령어 => kill 프로세스ID 시그널(신호) 유발 사건 디폴트 동작 SIGTERM kill 프로세스ID 명령에 따른 종료 종료 ps (process list) ☞ ps : 현재 창에서 돌고있는 프로세스(프로그램)을 보여줌 ☞ ps -A : 현재 돌고있는 모든 프로세스(프로그램)을 보여줌 ☞ ps -A | grep 프로그램명 : 현재 돌고있는 해당 프로세스(프로그램)의 정보(프로세스ID)를 보여줌 getpid(), 프로그램이 자신의 프로세스ID를 얻을때 쓰는 함수 #include pid_t getpid(void); pid_t getppid(void); ☞ getpid는 현재 프로세스의 프로세스..

    2013.07.02_sigaction() 함수.

    Signals(신호) 하드웨어적 인터럽트 : ARM, ATmega .. MCU 칩 .. 등등 소프트웨어적 인터럽트 : 리눅스 : Signal (신호) 윈도우 : Message (메세지) 자바 : Event (이벤트) 위의 S/W 인터럽트중 Signal이 수행이 될때, 다음의 4가지중에 하나가 동작한다. 1. 신호가 무시된다. 프로세스는 전달되었다는 것을 인식못함. 2. 프로그램이 운영체제에 의해 강제적으로 종료됨. 3. 프로그램에 의해 지정된 신호 처리 루틴(signal-handling routine)이 수행. 4. 신호가 블록된다. 각 프로세스는 마스크(mask)를 가지며, 이것은 현재 해당되는 프로세스에 어떤신호가 블록되어있는지 나타낸다. 우린 보통 1, 3의 경우를 많이 본다. sigaction()..

    2013.07.01_TCP(Transfer Control Protocol)_by종영이형

    TCP(Transfer Control Protocol) 16bit source port, 16bit destination port: 출발지와 도착지의 서비스포트 번호. TCP의 다중화를 지원해주는 부분이다. 하나의 IP를 가진 호스트에서 여러 개의 포트를 사용하여 복수 개의 서비스가 가능하도록 함. 32bit sequence number: 처음 연결을 시도할 때 시스템에서 임의로 생성한다. 이 값은 전송량을 내포하고 있으며, 받은 쪽에서 이 값을 이용하여 재조립을 한다. 이 값과 더불어 32bit acknowledgement number 값의 계산과정, 패킷 전송시와 재조립시에 사용한다.Sequence number(32bit), Acknowledgement number(32비트) : sequence nu..