Smart Box
Winhttp vs Inet 본문
보통 웹으로부터 소스를 캐오는것을 만들었다거나, 웹 관련된것을 해본 경험이 있는분이라면,
적어도 inet은 알고있었을꺼예요. 거기 당신, 모른다고 꽥꽥대지 말아요!
우선 제가 지금까지 조사한 결과는 이래요.
- Information -
- Winhttp -
단일 스레드 환경으로 작동하는 웹 컨트롤이예요.
단일로 작동하기 때문에 시동 속도는 무지하게 빨라요.
또한 CPU 사용률도 적구요. 하지만, 단일스레드라는것 자체에 단점이 있어요.
웹에 명령을 내리고, 웹으로부터 답신을 완전히 받는 작업을 수행하기까지 그 수행작업을 실행시킨 프로그램은
그 프로그램이 멀티 스레딩 환경으로 작용하지 않은 한 동작이 멈춰버려요.
결론은 이래요,
시동속도 : ★★★★★★★★☆☆
연속속도 : ★★★★★★★☆☆☆
멀티스레딩 : 불가능
CPU사용률 : 하
- Inet -
무려! 멀티 스레드 환경으로 작동하는 웹 컨트롤이예요.
멀티로 작동하기 때문에 시동 속도는 어느정도 느려요.
CPU 사용률도 Winhttp보다는 무겁지요. 하지만, Winhttp와는 다르게 멀티스레딩으로 작동한다는 사실!
웹에 명령을 내리고, 웹으로부터 답신을 완전히 받는 작업을 수행하기까지 그 수행작업을 실행시킨 프로그램은
그 프로그램이 단일스레드 환경으로 작용했더라도 동작이 멈추지 않아요!
게다가, 빠른 속도로 연속으로 작동한다면 Winhttp와 거의 비슷해요! 약간 빠를지도 모르겠어요.
결론은 이래요,
시동속도 : ★★★★★☆☆☆☆☆
연속속도 : ★★★★★★★☆☆☆
멀티스레딩 : 가능
CPU사용률 : 중
- Source Code -
이건 지금까지 제가 수집해서 제작했던 자료들이예요.
Winhttp을 이용해서 웹 소스 얻기
우선적으로 [프로젝트(P)] -> [참초(N)...]에서
[Microsoft WinHTTP Services, version 5.1]를 체크해주세요
Public Function GetUrlCodeWinHTTP(sURL As String, ConTime As Long, ReTime As Integer) As String
|
도움 출처 : http://coolsoft2.com/
Inet을 이용해서 웹 소스 얻기(수학쟁이님 버전)
우선적으로 [프로젝트(P)] -> [구성 요소(O)...]에서
[Microsoft Internet Transfer Control 6.0]를 체크해주세요
Public Function GetUrlCodeInet_v1(ByVal URL As String, ByRef inet As inet) As String
|
그리고, 이번의 핵심이라 할수있는!
Inet을 이용해서 웹 소스 얻기 직접 작성한 코드예요!
Public Function GetUrlCodeInet_v2(sURL As String, ConTime As Long, ReTime As Integer, ByRef inet As inet) As String
|
이 3가지의 소스에 대해 부수적으로 설명해드릴께요.
첫번째의 WinHTTP를 이용해 웹소스를 가져오는 소스는
속도면에서는 좋지만, 용도에 따라서는 별로 좋지 않은 방법일수 있어요.
소스를 받아올때까지는 아무 작업도 하지 못하게 되니까요.
예를들어 네이버 게시글을 서버로 팀원들의 공지사항 프로그램을 만들었는데,
가동중에 갑자기 인터넷 상태가 안좋아진다거나 한다면,
연결 제한시간동안 아무작업도 못하게되요!
두번째의 Inet을 이용해 웹소스를 가져오는 소스는
완벽했어요! 듀얼코어 환경에서 테스트해보기 전까지는.
Do Loop을 이용해 웹에서 소스를 받아올때까지 기다리기때문에,
컨넥팅 시간이 길어지면 길어질수록 CPU 100%차지와
심지어 듀얼코어 환경에서는 오버플로우를 유발할수 있어요!
(연속사용시 듀얼코어에서는 70% 이상 즉시 오버플로우 발생)
마지막으로 세번째!, 제가 직접 연구해서 작성한 소스예요.
수학쟁이님 소스의 단점을 해결했죠.
이제 듀얼코어에서의 오버플로우도 없고, 심지어 수학쟁이님 소스보다 처리속도가 빨라요!
다만, 제 노트북에서만 그런지 600~700회정도 연속으로 돌리면 오류보고창이 뜨면서
꺼지더군요.
만일, 다른분들도 저처럼 꺼진다면 제게 말해주세요!
해결법도 안다면 제가 무지 기뻐할꺼예요!
출처 : 고구마S
'Computer > Windows 정보' 카테고리의 다른 글
VB6.0 For문 (7) | 2009.12.20 |
---|---|
VB 6.0 와 Net 언어 비교! (Net 언어) (0) | 2009.12.20 |
아스키 코드(ASCII) 에 대해 알아보자! (0) | 2009.08.23 |
EXE 중복 실행 방지 강좌 (2) | 2009.08.21 |
보고 따라하기만하는 Visual Basic 이렇게 시작하세요. 제 1강좌.. (0) | 2009.08.21 |