프로그램

ASP 에서 Socket 통신 하려고 할 때

(주)CKBcorp., 2016. 2. 6. 06:00
반응형



말 그대로다. 이거 옛날 자료라 자료가 잘 없다. -_-;; 여기저기 긁어온 자료를 모아 정리한다.


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://lagneid.tistory.com/17

http://tech.dimac.net/

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은 저 사이트에서 다운받아도 되고, 이걸 다운받아도 된다. 다 같은거임.



w3Sockets.zip



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 를 참조.



이상 끝.


반응형