[history] 네트워크 플그래밍 공부 발자국 순서 (2007/10/29)
Posted on 2009. 5. 12. 13:09
Filed Under Programming/Network
1. tcpechoserver/tcpechoclient : 블로킹 모드 / 단일 클라이언트 접속
2. html protocol 적용하여 만든 서버에 익스플로러(클라이언트)를 이용해 접속해보고 테스트
[ GET / HTTP/1.1 → HTTP/1.1 200 OK ]
3. 쓰레드 사용: 다중 접속 지원을 위해 ListenThread와 RecvThread 쓰레드 함수를 만들어 돌려보자!
서버는 받은 메시지를 접속된 모든 클라이언트에 echo해준다.
[ WaitForMultipleObjects, CreateThread/CloseHandle ]
→ 문제점: 서버에서 받는 메시지가 여러 클라이언트에서온 메시지와 엉켜버렸다.
4. select 를 사용해보자! (쓰레드는 사용 안함) : blocking or nonblocking
[ struct fd_set, select, FD_ZERO, FD_SET, FD_CLR, FD_ISSET ]
typedef struct fd_set {
u_int fd_count;
SOCKET fd_array[FD_SETSIZE];
} fd_set;
5. nonblocking i/o model: WSAAsyncSelect : 윈도우 기반
6.
반응형