"프로그램 세계" 잡지에서 많은 것을 배우게 되는군요. 서버 측 소켓 프로그래밍의 정수라고 할 수 있는 I/O Completion Port 기법을 배웠습니다. 더구나, ATL Service도 알고만 있다가 "프로그램 세계"에 나와서 한 번 더 공부를 했지요. 둘을 합쳐 보았습니다. 이 예제에는 "NT 서비스"로 동작하면서 IOCP를 수행하는 Echo 서버 예제를 구현했습니다. IOCP ... 상당히 편리하면서도 막강한 능력을 제시하는군요. 예제 테스트는 우선, 컴파일을 한 후, C:>chatservice /service를 실행하고, C:>net start chatservice라고 하면 서비스로서 동작이 됩니다. 그다음 C:>telnet localhost 3000라고 TELNET으로 확인을 하면 됩니다. 이때, TELNET을 여러 개 실행시킨 후 하나의 텔넷에서 키를 누르면 다른 TELNET 프로세스에도 그 값이 전송이 되어짐을 확인할 수 있습니다. 원래는 Chatting Server를 만들려고 했는데요. 시간이 없네요. 가능성만 남겨두고 다음을 기약해야겠습니다. ^.^
/*
c:\temp> telnet dict.org 2628
220 dict.dict.org dictd 1.12.1/rf on Linux 4.19.0-10-amd64 <auth.mime> <57789141.25737.1629124315@dict.dict.org>
DEFINE fd-eng-lat top
150 1 definitions retrieved
151 "top" fd-eng-lat "English-Latin FreeDict Dictionary ver. 0.1.2"
top /toup/
culmen
.
250 ok [d/m/c = 1/0/10; 0.000r 0.000u 0.000s]
DEFINE eng-lat my
550 invalid database, use SHOW DB for list
quit
221 bye [d/m/c = 0/0/0; 2.000r 0.000u 0.000s]
Connection to host lost.
c:\temp>
*/
No | Writer | Date | Cnt. | Title | File(s) |
43 | 정성태 | 7/17/2003 | 5255 | 탐색기 Namespace Extension 컨테이너 (VC 6.0, ATL) 2002.03.24 | 1 |
42 | 정성태 | 7/17/2003 | 3760 | KBManager WebBand (VC 6.0, ATL/Script) 2001.10.01 | 1 |
41 | 정성태 | 7/17/2003 | 3854 | UrlMonDownload (VC 6.0, ATL) 2001.06.16 | 1 |
40 | 정성태 | 7/17/2003 | 3793 | IE 북마크 임포트 (VC 6.0, ATL, MFC 지원) 2001.01.20 | 1 |
39 | 정성태 | 7/17/2003 | 4361 | MsIE.exe (VC 6.0, ATL, HTML Parser 로서의 IHTMLDocument2 이용 및 IE 보안설정) 2000.11.23 | 1 |
38 | 정성태 | 7/17/2003 | 3899 | EnumIE.exe (VC 6.0, ATL, 현재 사용 중인 IE에 접속) 2000.10.24 | 1 |
37 | 정성태 | 7/17/2003 | 3825 | ReuseIE.exe (VC ++ 6,0, Internet Explorer 재사용) 2000.04.17 | 1 |
36 | 정성태 | 7/17/2003 | 3421 | RemoteViewer dll (VC ++ 6.0, ATL) 2000.03.13 | 1 |
35 | 정성태 | 7/17/2003 | 3757 | IESpy dll (VC ++ 6.0, ATL) 2000.02.28 | 1 |
34 | 정성태 | 7/17/2003 | 3467 | Bmp2Gif 콘트롤 (VC ++ 6.0, MFC) 2000.02.28 | 1 |
33 | 정성태 | 7/17/2003 | 3305 | Gif89a 콘트롤 (VC ++ 6.0, ATL) 2000.02.28 | 1 |
32 | 정성태 | 7/17/2003 | 3811 | 이미지 4버튼 (VC ++ 6.0, ATL) 2000.02.28 | 1 |
31 | 정성태 | 7/17/2003 | 3431 | 이미지 홀더 (VC ++ 6.0, ATL) 2000.02.28 | 1 |
30 | 정성태 | 7/17/2003 | 3536 | 이미지 뷰어 (VC ++ 6.0, ATL) 2000.02.28 | 1 |
29 | 정성태 | 7/17/2003 | 3332 | ChatClient (VC ++ 6.0, MFC) 1999.09.09 | 1 |
28 | 정성태 | 7/17/2003 | 4677 | Winsock2 SPI : LSP 예제 (VC ++ 6.0) 2001.08.07 | 1 |
27 | 정성태 | 7/17/2003 | 3777 | Echo Services Server (VC ++ 6.0, ATL Service) 2001.01.07 | 1 |
26 | 정성태 | 7/17/2003 | 6753 | FTP Client (VC ++ 6.0, MFC) 1999.09.14 | 1 |
25 | 정성태 | 7/17/2003 | 3161 | 모뎀 정보를 알아내는 클래스 (VC ++ 6.0, MFC) 1999.09.12 | 1 |
24 | 정성태 | 7/17/2003 | 7858 | Ping (VC ++ 6.0, MFC, CSocket Class) 1999.09.09 [1] | 1 |
23 | 정성태 | 7/21/2003 | 6785 | ChatServer / ChatClient (VC ++ 6.0, MFC, Win32 API Socket) 1999.08.01 | 2 |
22 | 정성태 | 7/17/2003 | 3335 | 성능 객체 카운터 (VC 6.0, Win32) 2001.07.07 | 1 |
21 | 정성태 | 7/17/2003 | 3418 | StringSplit 클래스 (VC++6.0, Win32) 2000.02.28 | 1 |
20 | 정성태 | 7/17/2003 | 3708 | SQLDirect 클래스 (VC++6.0, Win32) 2000.02.28 | 1 |
19 | 정성태 | 7/17/2003 | 3087 | ImeControl 클래스 (VC++6.0, Win32) 2000.02.28 | 1 |
18 | 정성태 | 7/17/2003 | 3441 | RegistryEx 클래스 (VC++6.0, Win32) 2000.02.28 | 1 |