TCPIP

    2013.08.05_Window에서 Packet Capture 하기 연습

    ------ Window 용 WinCap ----------------------------------------------------------------------------------------------------------------http://www.winpcap.org/ -> Wincap -> Development -> WinCap 4.1.3 ---------------------------------------------------------------------------------------------------------------------------------------- sample.c 수정전 소스 #include #include #pragma comment(lib, "wpcap..

    2013.07.12_SockCapture_소켓으로 패킷캡쳐하기_

    송신측 프로토콜 스택에서의 작업 어플리케이션 계층은 트랜스포트 계층으로 메시지를 보냅니다. 트랜스포트 계층은 네트워크 계층으로 세그먼트를 보냅니다. 네트워크 계층은 링크 계층으로 데이터그램을 보냅니다. 링크 계층은 물리적 계층으로 프레임을 보냅니다. 물리적 계층은 수신측 물리적 계층으로 프레임의 비트들을 보냅니다. 수신측 프로토콜 스택에서는 다음과 같은 작업들이 실행됩니다. 물리적 계층은 송신측 물리적 계층으로부터 프레임의 비트들을 받습니다. 링크 계층은 물리적 계층으로부터 프레임들을 받습니다. 네트워크 계층은 링크 계층으로부터 데이터그램을 받습니다. 트랜스포트 계층은 네트워크 계층으로부터 세그먼트를 받습니다. 어플리케이션 계층은 트랜스포트 계층으로부터 메시지를 받습니다. Ethernet.c #inclu..

    2013.07.10_Thread를 이용한 Server 구현.

    TCPserver.c #include "smart.h" #define MAXPENDING 5 #define MAXUSER 10 ///// Thread ID 를 알아야하기때문에 구조체로 넘겨줌. // // User 사람 수 관리. typedef struct _TInfo { unsigned int uiUser; // 위치번호. int iSock; // 소켓번호. pthread_t t_ID; // Thread 번호. }TInfo; ///// void *ClientRecv(void *); ///// 크리티컬 섹션 시작. ///// unsigned int uiUser; TInfo * stpLink[MAXUSER]; // 포인터 배열. 사람수 만큼 만듦. ///// 크리티컬 섹션 종료. ///// ///// 뮤텍스..

    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이 ..