이 소켓 구성 요소는 jmail을 개발한 회사에서 만든 것입니다.
아주 오래된 버전입니다. 하지만 꽤 좋습니다. 나는 항상 그것을 사용합니다.
비교적 안정적입니다. 나는 이전에 xmlhttp가 win2003 서버에서 제대로 작동하지 않는다는 것을 발견했습니다. 트래픽이 많으면 IIS가 쉽게 중단됩니다. 이 구성 요소는 매우 안정적입니다.
paraHost =" www.downcodes.com " ' 호스트
paraPort = 80' 포트
paraFileUrl="/test/test.htm"
Set Socket = CreateObject("Socket.TCP")
Socket.Host = paraHost & ":" & paraPort
Socket.Timeout = paraTimeout
Err.Number <> 0이면 Err.Clear
소켓.열기
' 시간 초과 오류 = 8000ffff
Socket.SendLine "GET" & paraFileUrl & "HTTP/1.0"
Socket.SendLine "HOST: " 및 paraHost
소켓.SendLine ""
소켓.SendLine ""
'슬립 200
Socket.WaitForDisconnect
Err.Number <> 0이면
response.write Err.Number & " -- " & Err.Description
Err.Clear
또 다른
response.write HTTPResponse(Socket.Buffer, 1) ' 소켓에서 텍스트 출력
종료 조건
소켓.닫기
소켓 설정 = 없음
비공개 함수 HTTPResponse(ByVal toHTTPResponse, ByVal whichHTTPResponse)
오류 발생 시 다음 재개
희미한 HTTPResponseDelimiter
HTTPResponseDelimiter = Chr(13) & Chr(10) & Chr(13) & Chr(10)
If (InStr(1, toHTTPResponse, HTTPResponseDelimiter, vbBinaryCompare) <> 0) 그러면
HTTP응답이 있는 사례를 선택하세요.
사례 0 '헤더
HTTPResponse = Mid(toHTTPResponse, 1, (InStr(1, toHTTPResponse, HTTPResponseDelimiter, vbBinaryCompare) - 1))
사례 1 '본체
HTTPResponse = Mid(toHTTPResponse, (InStr(1, toHTTPResponse, HTTPResponseDelimiter, vbBinaryCompare) + Len(HTTPResponseDelimiter)), (Len(toHTTPResponse) - (InStr(1, toHTTPResponse, HTTPResponseDelimiter, vbBinaryCompare) - 1)))
선택 종료
End If
함수 종료