본문 바로가기

old_Coding/WinSocket

Circular Buffer (Ring Buffer) (*) For the first step to implement an IOCP(Input/Output Completion Port) server model, I simply made a buffer interface to use in the server. I used a buffer which I called "pulled buffer". I'm going to show you my new Ring Buffer with the pulled buffer. * Pulled Buffer * I'd used this pulled buffer for blocking-server models. Its principle is very simple. You can easily understand this. It's assum.. 더보기
[Server] 쓰레드를 이용한 에코 서버 구현환경 : 비쥬얼 스튜디오 2008 구현일시 : 2009년도 초 네트워크 기반 : TCP/IP, WindowsSocketProgramming 작성자 : 이영득 설명에 들어가기 앞서, 아래 기본 에코서버에서 사용하였던 accept(), send(), recv() 함수는 우선 블럭킹 모드이다. 무슨말인고 하니, 프로그램이 진행되다가 위에 저렇게 생긴 함수안으로 들어가면 그에 상응하는 무언가가 이루어지기 이전에는 리턴되지 않는다(함수에서 빠져나오지 않는다). 자세히 설명하면, 내가 accept() 함수를 호출했다고 하자. 프로그램은 이 함수 안으로 들어간다. 그리고 상식적으로 함수안으로 들어가서 리턴이 되야 정상인데, 이놈은 리턴이 안되고 머무른다. (마치 함수안에서 무한루프를 도는것처럼) 자. 그럼 현재 .. 더보기
[Server/Client] 기본함수로 구현한 에코 서버 구현환경 : 비쥬얼 스튜디오 2008 구현일시 : 2009년도 초 네트워크 기반 : TCP/IP, WindowsSocketProgramming 작성자 : 이영득 이제 저도 공부시작한지 5~6개월 되는것 같네요. 이 소스는 올해 초쯤 서버 공부를 하면서 제일 처음 짜본 소스입니다. 기본 클래스 구성은 Acceptor, Session, Err 이렇게 3개를 가지고 있는데, Err은 C언어의 함수개념으로 생각하고 모든 클래스에서 부를수있도록 정의했었군요. 여전히 제 서버의 기반은 비슷합니다. 순서만 잘 알아두시면 TCP/IP 접근은 굉장히 쉬운것같네요. WSA 초기화 ->SOCKET 초기화 -> Bind(서버정보) -> Listen(대기상태로전환) -> (1번 루프시작) Accept(클라이언트접속대기) ->(.. 더보기