말 그대로다. 이거 옛날 자료라 자료가 잘 없다. -_-;; 여기저기 긁어온 자료를 모아 정리한다.
1. ASP 다. ASP.NET 아니다.
ASP 가 워낙 옜날거라 잘 안 나오더라. 둘의 차이점은 알지?
VisualBasic Script 기반이랑, 닷넷 프레임워크가 설치되어야 하는 차이.
서버에 닷넷 프레임워크를 설치하는가 아닌가의 차이.
2. Socket 객체를 안 쓰는 간단한 방법은, HTTP/HTTPs 를 이용해서 Get/POST 방식으로 통신하는 거.
이거야 뭐... 딱히 할 말 없지.
Server Side 에서 client 를 조립해서 화면에 데이터 날라오면, 그걸로 화면에 출력.
3. Socket 객체 사용.
ASP에서 DLL 을 이용해서
80포트의 HTTP REQUEST / RESPONSE 를 경유하는 게 아닌,
별도의 포트로 소켓 통신을 하는 방법.
내가 찾아보고 정리하는 내용은 이거다.
자. 들어가자.
11. 기본 개념.
11.1 set Socket = server.CreateObject("Socket.TCP")
아래의 사이트를 참고하라.
http://blog.daum.net/_blog/BlogTypeView.do?blogid=0GB8L&articleno=7066343
http://www.dimac.net/products/freeproducts/w3sockets/reference/refstart.htm
사이트에 다 써 있지만 다시 설명하자면,
ASP에서 소켓통신을 위해, COM 사용방식인 CreateObject 를 이용한다.
이 때 통신용으로 사용하는 COM이름( <- 이 표현이 맞나? 잘 모르겠네 ) 이 "Socket.TCP" 인데,
이게 MS 가 만든 게 아니라, dimac.net 이란 곳에서 만든 건가 보다.
이름이 w3Socket 이라는데, 장사가 잘 안 된 건지 자사 사이트에서도 내렸다.
다른 모듈 ( w3Upload, w3Image, w3Jmail 등등 ) 은 상품소개가 있는데, 이건 없어...
메뉴로 검색해 들어가면 찾을 수 없지만,
다행히 API document 가 없는게 아니라서 위의 링크에 있으므로 인터페이스 확인이 필요하다면 참고하면 된다.
11.2. 통신 예제 + 파일 다운로드
http://blog.daum.net/_blog/BlogTypeView.do?blogid=0GB8L&articleno=7066343
에서 확인하면 된다.
예제를 긁어오는 게 뭔가 아니다 싶어서, 링크만 걸어놓는다. 그냥 가서 봐라.
통신용 DLL은 저 사이트에서 다운받아도 되고, 이걸 다운받아도 된다. 다 같은거임.
11.3. 주의점.
1. DLL 에 버그가 있는 듯 하다.
document 중 GetLine() , GetText( len ) 함수가 정상동작하지 않는다.
버전이 1.0 인거 보면, 아마 장사 안되서 접은 거 같고, 그러니 당연히 버그 수정판은 없겠지?
로직 짜다 보면 저 두 함수가 필요할텐데, 어짜피 작동 안하니 ( timeout 떨어진다 )
저 함수 쓰는건 포기하고 wait() 나 waitFor() , WaitForDisconnect() 중 하나 써라.
2. memory leak 이 발생하는 듯.
카더라 통신이다. 내가 확인한 건 아님. 서버에서 돌리다 보면 메모리를 슬금슬금 잡아먹는다고 하던데...
[ 정말이라면, 당신은 직업을 잃게 되겠지. ]
근데, 구글에게 물어보면 알겠지만 ASP ( 누누히 이야기하지만 ASP.NET 아니다 ) 에서 소켓통신 검색하면 나오는 라이브러리는 저거 하나밖에 없기 때문에, 선택지가 없다.
일단 내가 테스트해 봤을땐 별 일 없었는데, 며칠간 장기테스트 해 본 게 아니니 답이 될 수는 없다.
3. 32bit 모듈이므로, 64bit 에서 사용하려면 추가 설정이 필요.
우리모두 http://lagneid.tistory.com/17 에게 감사를.
4. 추가 : ASP 에서 MD5 구현 함수
http://www.goodkiss.co.kr/ASP/211 를 참조.
이상 끝.
'프로그램' 카테고리의 다른 글
키보드 코드표 (0) | 2016.03.21 |
---|---|
MSSQL 에서는 소수점 선언할 때 double 안 됨. float 쓸 것. (0) | 2016.03.03 |
MS Access 에서 쿼리문 직접 실행 방법. (0) | 2016.01.29 |
테이블을 생성할 때 AUTO_INCREMENT 값 설정. MSSQL vs MySQL. (0) | 2016.01.05 |
C#에서 "<클래스이름/네임스페이스이름>" 형식 또는 네임스페이스 이름을 찾을 수 없습니다. (0) | 2015.12.25 |