Distribute/etc.2012. 9. 2. 22:31


심플 웹서버 실행화면- 심플 웹서버 실행화면 -

그저께부터 쉬엄쉬엄 만들기 시작한 심플 웹서버 프로젝트.

이제 생각 했던 기능은 거의 구현 된거같다.


구현내용]

1. 웹서버의 기본적인 파일요청에 대한 응답처리.

2. 응답시 미리 정의 된 MIME타입 테이블에 따라 올바른 MIME타입 반환

3. HTTP 1.1의 Continuous한 연결처리

4. 경로명등에 한글지원 (UTF-8, URL Decode)

5. Server side scripting 지원


다른것 보다 5번이 제일 중요하다.

사실 원래는 웹서버를 만들려는게 아니라 R모 사이트와 관련있는 일명 "펑게"를 만들려고 생각했었는데..

하는김에 서버스크립트를 지원하는 웹서버를 만들어서

다른데에도 범용적으로 쓸 수 있으면 좋겠다 싶어서 심플 웹서버 프로젝트가 시작됐다.

이 프로젝트의 중점인 서버스크립트 지원을 구현하는데에 RunUO의 사용자 스크립트 컴파일, 호출 방법 등이 이용되었다.

서버스크립트는 JSP의 서블릿과 비슷하게, C#코드로 요청에 대한 처리를 담당할 클래스파일을 작성하면,

서버가 실행 될 때 해당 파일들을 컴파일해 모듈로서 서버에 로드된다.

하지만 서블릿과 달리 코드를 수정하면 웹서버를 재시작해야 적용된다.


동작순서]

1. Main 메소드 실행

2. 사용자가 작성한 스크립트 목록 수집 및 컴파일

3. 컴파일 된 스크립트모듈 로드

4. 스크립트모듈 내 각 클래스에 Initialize()메소드 존재시 해당 메소드 실행

   - 이 때 서버 환경, MIME타입 등록 등 기본 정보 구성 (서버 스크립트인 Configure.cs 이용)

   - 서버 스크립트로 사용 할 클래스도 이 때에 Container클래스에 등록해야 사용 가능하다.

5. 리스너 스레드 생성 및 리스너 시작, 클라이언트 연결 대기

6. 클라이언트 접속시 해당 요청 처리


서버스크립트 작성 예]

- 클래스 내에 public, static으로 선언된 Initialize() 메소드 생성

  - 이 메소드는 스크립트 컴파일 후 임의로 실행 되는 메소드로, 컨테이너에 서버 스크립트를 등록하는것이 주 목적이다.

- 요청처리기 생성

  - 클라이언트의 요청을 처리하기 위해 실행 될 메소드이다.

  - 기본형: public static void 메소드명(Request req, out Response resp)

  - 스크립트 내에서 out으로 지정된 Response형 인수를 생성해 가공하면,

     이 메소드를 호출한 컨테이너가 클라이언트에게 전송하는 구조이다.


서버스크립트 작성 예시- 서버스크립트 작성 예시 -



심플 웹서버 테스트화면- 심플 웹서버 테스트화면 -


===============================================================================================================

블로그 유입 키워드를 보면 C# 웹서버에 대한 관심이 많은 듯 하다.

개강 이후 지금까지 전혀 건드리지 않아서 POST 메소드에대한 처리도 안되지만 뭐..

일단 필요한 사람은 만들어쓰겠지..

SimpleWebServer.zip

'Distribute > etc.' 카테고리의 다른 글

Photoshop 7.0 웹용으로 저장 플러그인  (0) 2008.11.22
[JS] Net Transport의 IE 메뉴 확장 파일  (2) 2008.01.18
[VB] Clubbox Trayer v1.0  (0) 2007.08.12
[PHP] Wake on Lan Class  (0) 2007.07.05
Posted by 로드펭귄
Distribute/etc.2008. 11. 22. 06:13

음.. 정말 간만의 포스팅이구나.. ' ㅅ'
포토샵 7.0은 웹용으로 저장시 파일명에 한글등이 섞여있으면

저장될 파일 이름 중 일부에 비라틴 문자가 들어 있습니다.
이러한 파일 이름은 일부 웹 브라우저나 서버와 호환되지 않습니다.
라며 귀찮게 한다.
귀찮을 뿐이지 딱히 저장이 안되거나 하는건 아니라서 별 신경 안쓰고 썼지만..
심심해서 수정 해 봤다 + _+b

웹용으로 저장.zip

"플러그인폴더\Adobe Photoshop Only\Import-Export"에 넣어주면 된다.
* 한글 포토샵 7.0용.

'Distribute > etc.' 카테고리의 다른 글

[C#] 심플 웹서버 프로젝트  (3) 2012.09.02
[JS] Net Transport의 IE 메뉴 확장 파일  (2) 2008.01.18
[VB] Clubbox Trayer v1.0  (0) 2007.08.12
[PHP] Wake on Lan Class  (0) 2007.07.05
Posted by 로드펭귄
Distribute/etc.2008. 1. 18. 11:33
Net Transport를 설치하면 Internet Explorer를 사용 할 때 마우스 오른쪽 메뉴에
"NetXfer로 받기"와 "NetXfer로 모두 받기"가 추가된다.

사용자 삽입 이미지


모두 받기는 별 문제 없이 잘 실행 되지만 받기는 거의 대부분 스크립트 오류를 뱉으며 메롱하더라.

사용자 삽입 이미지


받기는 Net Transport가 설치된 폴더의 NXAddLink.html에서 처리한다.
열어보니 VBScript로 만들어져있더라.
오류가 뜨는게 external.menuArguments.event.clientX 이 구문인데..
clientX는 기본적으로 있는 메소드일텐데 어째서 오류를 뱉는지 모르겠다.
결국 아~무 근거 없이 VBS의 문제라고 단정짓고 JavaScript로 변환해보니 잘 실행되더라..

만든 김에 EMBED, OBJECT등으로 삽입된 파일을 긁는 메뉴도 만들어봤는데
아무 꼼수 없이 평범하게 삽입 된 객체의 파일은 잘 긁어오니..  쓸만하더라.
잘 쓸 일은 없겠지만 가끔 받아놓고 싶은 동영상이나 플래시 파일을 발견해도
소스보기 귀찮아서 그냥 패스하곤 했는데 이제 클릭 한번이면 웬만한건 그냥 다운 될 테니.. = ㅁ=

Net Transport IE Extension.zip


* 압축을 풀고 NXAddLink.html를 Net Transport가 설치된 폴더에 복사하면 된다.
* NXAddObj.html는 EMBED, OBJECT등으로 삽입된 파일을 받는 메뉴.
  사용하려면 NXAddObj.reg파일을 열고 NXAddObj.html의 경로를 수정한 뒤 실행한다.

'Distribute > etc.' 카테고리의 다른 글

[C#] 심플 웹서버 프로젝트  (3) 2012.09.02
Photoshop 7.0 웹용으로 저장 플러그인  (0) 2008.11.22
[VB] Clubbox Trayer v1.0  (0) 2007.08.12
[PHP] Wake on Lan Class  (0) 2007.07.05
Posted by 로드펭귄
Distribute/Spiritual soul2007. 11. 21. 12:54

사용자 삽입 이미지


Spiritual Soul의 에디터. (SS2가 아님)

Windows 9x등에서는 SS를 못찾아 에딧 불가 (API는 문제가 없어보이는데..)

Clubbox Trayer에 쓴 방법을 쓰면 찾을 수 있을라나...


* 이하 SS카페에 적었던 설명 *

스피1을 실행한 뒤 "도우미 삽입"버튼을 눌러줍니다.

고칠 캐릭터(아군, 적군, 중립 아무거나)를 클릭합니다.

에디터의 "얻어오기"버튼을 누르면 캐릭터의 정보가 에디터에 입력됩니다.

* POSITION: 아군, 적군, 중립 등의 세력 -> 적 마스터의 정령이나 중립 정령도 바로 아군으로 변경

* END: 대기상태 -> 무한턴이 있으니 별로 필요는 없지만 마스터의 경우엔 소환도 무한

* DEF와 INT는 홀수로 증가(1, 3, 5, ...) 할 때 마다 최대HP와 최대MP도 1씩 증가

캐릭터의 정보를 수정하고 난 뒤, "적용하기"버튼을 누르면 에디트 완료!


* 다운로드: SS_EDIT.exe


* 소스코드: SS_EDIT_src.zip


'Distribute > Spiritual soul' 카테고리의 다른 글

Spiritual Soul XP 호환 패치 완료!  (29) 2007.07.11
Posted by 로드펭귄


사용자 삽입 이미지


창세기전3와 창세기전3 파트2의 리소스 추출기.

.pak로 싹 모여있는 파일을 풀어준다.

(압축이고 암호화고 전혀 없이 그냥 뭉쳐져있다.)


* 다운로드: G3_Extr.exe   G3P2_Extr.zip


* 소스코드: G3_Extr_src.zip   G3P2_Extr_src.zip


Posted by 로드펭귄