日常茶飯事

이것 저것 개발하다 보면 간단하게 쓸수 있는 서버가 많이 필요합니다.

Server-Client 구조의 간단한 프로그램들이 많이 필요하게 되죠.

이럴때 쓸려고 만든 웹서버 입니다.

웹으로 할때 장점은 워낙 오픈된 웹클라이언트 소스가 많아서 이것들을 가져다 쓸수 있다.

브라우져로도 확인을 할수 있다 정도 겠네요.


샘플소스로 구동한 모습입니다.

소켓 리스닝 하고 있다가 웹형식으로 넘어 오는거 파싱해서 다시 http로 리턴 해주면 됩니다.

대강의 코드는 아래와 같습니다.

제가 설명을 잘못해서 T.T



커스터 마이징해서 쓰시고 싶으시면 아래부분을 수정하시면 됩니다.

[ServerProcess.cs]

ResponseProcess 부분만 잘 수정하시면 됩니다.

Web Request가 같이 넘어 오니 그거 가지고 꿍딱꿍딱 하시면 될것 같구요.

[소스]

neo365.Server.zip

SimpleHttpServer.zip


허접한거라 별내용없기는 한데 --; 참조해서 더 발전시켜 주세요.






'프로그램개발 > Tip!!' 카테고리의 다른 글

MS Timezone  (0) 2016.08.20
[C#] 웹서버를 만들어 봅시다.  (2) 2015.12.25
[C#]ASC II Code  (0) 2015.11.14
[C#] 토렌토 파일을 읽어 봅시다.  (0) 2015.10.17
[c#] Mac Address/ Ip Address 가져오기  (0) 2012.08.09
[PHP]이메일 존재 여부 검사기~  (0) 2007.10.01

Comment +2

  • 꾸용꾸용 2016.08.27 02:45

    좋은 정보공유 감사드립니다.

  • 꾸용꾸용 2016.09.03 01:56

    안녕하세요? 일단 웹프로그램에 좋은 시작점을 알려주셔서 감사합니다.
    샘플로 제공해주신 프로그램으로 간단하게 응용 프로그램을 만들고 싶은데 처음하다보니
    어렵네요.

    하고 싶은건 모바일로 접속하면 웹페이지에 간단하게 버튼과 edit박스가 나오고
    edit에 숫자를 입력후 버튼을 누르면 서버에서 이를 처리하고 싶은데
    웹페이지 자체를 못만들겠네요....
    현재 샘플로 제공해주신건 string을 반환하던데
    이걸 html로 만든 폼을 리턴 시킬수 있는지요?

    처음 하다보니 개념이 없습니다. 도움 부탁드립니다.

해피해킹은 참 매력적인 키보드 입니다.

적응하면 개발하는데 이것보다 편한것도 없구요.

일단 작고 가벼워서 들고 다니기가 좋아요.


아무튼 OS X El Capitan 에서 뭔가 이상하게 동작한다고 생각하신분들..

네 이게 드라이버 문제네요.

아래 페이지에서 드라이버를 다운로드 하실수 있습니다.

#주의 : 설치후에 재시동을 합니다.

https://www.pfu.fujitsu.com/hhkeyboard/macdownload.html

아래키보드를 지원합니다.

  • Happy Hacking Keyboard Professional
  • Happy Hacking Keyboard Professional2
  • Happy Hacking Keyboard Professional HG
  • Happy Hacking Keyboard Professional JP
  • Happy Hacking Keyboard Professional Type-S

즐거운 개발 되세요.


그럼...

Comment +0

ASC II Code 

Serial 통신등에서 많이 쓰는 아스키 코드 표입니다.



HEX 십진법 약자 설명 한글설명
0x00 0 NUL Null Character 공백 문자
0x01 1 SOH Start of Header 헤더 시작
0x02 2 STX Start of Text 본문 시작, 헤더 종료
0x03 3 ETX End of Text 본문 종료
0x04 4 EOT End of Transmission 전송 종료, 데이터 링크 초기화
0x05 5 ENQ Enquiry 응답 요구
0x06 6 ACK Acknowledgment 긍정응답
0x07 7 BEL Bell 경고음
0x08 8 BS Backspace 백스페이스
0x09 9 HT Horizontal Tab 수평 탭
0x0A 10 LF Line feed 개행
0x0B 11 VT Vertical Tab 수직 탭
0x0C 12 FF Form feed 다음 페이지
0x0D 13 CR Carriage return 복귀
0x0E 14 SO Shift Out 확장문자 시작
0x0F 15 SI Shift In 확장문자 종료
0x10 16 DLE Data Link Escape 전송 제어 확장
0x11 17 DC1 Device Control 1 장치 제어 1
0x12 18 DC2 Device Control 2 장치 제어 2
0x13 19 DC3 Device Control 3 장치 제어 3
0x14 20 DC4 Device Control 4 장치 제어 4
0x15 21 NAK Negative Acknowledgement 부정응답
0x16 22 SYN Synchronous idle 동기
0x17 23 ETB End of Transmission Block 전송블록 종료
0x18 24 CAN Cancel 무시
0x19 25 EM End of Medium 매체 종료
0x1A 26 SUB Substitute 치환
0x1B 27 ESC Escape 제어기능 추가
0x1C 28 FS File Separator 파일경계 할당
0x1D 29 GS Group Separator 레코드 그룹경계 할당
0x1E 30 RS Record Separator 레코드 경계 할당
0x1F 31 US Unit Separator 장치 경계 할당
0x7F 127 DEL Delete 삭제
0x20 32 Space 공백 문자
0x21 33 !    
0x22 34
"
   
0x23 35 #    
0x24 36 $    
0x25 37 %    
0x26 38 &    
0x27 39 '    
0x28 40 (    
0x29 41 )    
0x2A 42 *    
0x2B 43 +    
0x2C 44 ,    
0x2D 45 -    
0x2E 46 .    
0x2F 47 /    
0x30 48 0    
0x31 49 1    
0x32 50 2    
0x33 51 3    
0x34 52 4    
0x35 53 5    
0x36 54 6    
0x37 55 7    
0x38 56 8    
0x39 57 9    
0x3A 58 :    
0x3B 59 ;    
0x3C 60 <    
0x3D 61 =    
0x3E 62 >    
0x3F 63 ?    
0x40 64 @    
0x41 65 A    
0x42 66 B    
0x43 67 C    
0x44 68 D    
0x45 69 E    
0x46 70 F    
0x47 71 G    
0x48 72 H    
0x49 73 I    
0x4A 74 J    
0x4B 75 K    
0x4C 76 L    
0x4D 77 M    
0x4E 78 N    
0x4F 79 O    
0x50 80 P    
0x51 81 Q    
0x52 82 R    
0x53 83 S    
0x54 84 T    
0x55 85 U    
0x56 86 V    
0x57 87 W    
0x58 88 X    
0x59 89 Y    
0x5A 90 Z    
0x5B 91 [    
0x5C 92 \    
0x5D 93 ]    
0x5E 94 ^    
0x5F 95 _    
0x60 96 `    
0x61 97 a    
0x62 98 b    
0x63 99 c    
0x64 100 d    
0x65 101 e    
0x66 102 f    
0x67 103 g    
0x68 104 h    
0x69 105 i    
0x6A 106 j    
0x6B 107 k    
0x6C 108 l    
0x6D 109 m    
0x6E 110 n    
0x6F 111 o    
0x70 112 p    
0x71 113 q    
0x72 114 r    
0x73 115 s    
0x74 116 t    
0x75 117 u    
0x76 118 v    
0x77 119 w    
0x78 120 x    
0x79 121 y    
0x7A 122 z    
0x7B 123 {    
0x7C 124 |    
0x7D 125 }    
0x7E 126 ~    


'프로그램개발 > Tip!!' 카테고리의 다른 글

MS Timezone  (0) 2016.08.20
[C#] 웹서버를 만들어 봅시다.  (2) 2015.12.25
[C#]ASC II Code  (0) 2015.11.14
[C#] 토렌토 파일을 읽어 봅시다.  (0) 2015.10.17
[c#] Mac Address/ Ip Address 가져오기  (0) 2012.08.09
[PHP]이메일 존재 여부 검사기~  (0) 2007.10.01

Comment +0

토렌토 파일은 bencode라는 넘으로 작성되어져 있습니다.

키 + 값길이 : 값 + 키 + 값길이 : 값 ....

이렇게 반복되는 형태의 코드입니다.

예제)  into4:aaaafile5:bbbbb


이넘을 파싱해서 우리가 필요한 정보들을 쏙쏙 뽑아 옵니다.

패키지 정보 : https://github.com/Krusen/BencodeNET

[사용 예제]


그냥 한번 만들어 봤는데 참조 하세요.



'프로그램개발 > Tip!!' 카테고리의 다른 글

MS Timezone  (0) 2016.08.20
[C#] 웹서버를 만들어 봅시다.  (2) 2015.12.25
[C#]ASC II Code  (0) 2015.11.14
[C#] 토렌토 파일을 읽어 봅시다.  (0) 2015.10.17
[c#] Mac Address/ Ip Address 가져오기  (0) 2012.08.09
[PHP]이메일 존재 여부 검사기~  (0) 2007.10.01

Comment +0

정말 오랜만에 포스팅 입니다.


차청소 할때도 쓰고 집청소 할때도 쓰고 여기저기 쓸 청소기를 알아 보던중 눈에띈 물건 입니다.


조건은 

무선일것 - 차청소 할때도 써야되니까.

베터리 충전하기 편할것

흡입력이 빠방할것

이렇게 3가지였습니다.


첨에 싼거 보다가...  흡입력이 떨어지니 위로 이게조금더 좋을것 같은데..  좀만 더 보태면 좋은것 사는데... 위로 위로 위로...

이러다 보니 다이슨까지 가더군요.  (처음 예산은 3-5만원이였습니다.)


그러다가 드릴만드는 보쉬에서 청소기를 출시 했더군요.

기계덕후 덕국의 마력...

기존 공구에서 쓰던 충전기 / 베터리 호환됨.

나름 흡입력좋음..

가격도 본체만 5.1만... (베터리등등제외)

심지어 청소할때 LED등도 들어 옴!!

오호..  이거다..

어차피 드릴도 하나 사야되서 --;


근데 모델이 3종류 입니다.  여기서 또 선택장애가..


먼저 GAS 10.8V-LI

딱 구석만 청소 하게 생겼습니다.  이넘 베터리랑 호환되는 넘들은...

뭐 대충 이런 종류들 입니다.  간편하게 쓸수 있는 가정용(?) 들입니다.

동영상 한편 보고 가실께요.

차량용으로는 괜잖지만..  가정용으로는 구석만 청소 할것도 아니고 해서 바로 탈락..


그다음 남은 애들이 14V / 18V 이렇게 두개 모델인데.

숫자 높은 애들이 좋은 겁니다만.

두개가 공구도 그렇고 청소기도 그렇고 가격차가 거의 없습니다.

그리고 18V가 공구들 종류가 더 다양합니다.

그럼 당연히 18V로 낙점... 대충이렇게 생긴넘입니다.


그런데 살려니 가격이....  패키지로 사면 18만원.

혹시나 해서 개별 견적을 내봤는데...  택배비 주고도 더 더쌉니다. --;

그래서 드래곤볼 모으듯이 하나하나 사 모았습니다.


청소기 / 베터리 / 충전기 3종세트..

덕국의 남자 디자인이란..

박스를 까보면...

본체 / 연장봉 / 방청소용/ 구석청소용  이렇게 들어 있습니다.

베터리는 2ah짜리로..


충전량을 확인 할수 있게 불도 들어 옵니다.

엉덩이에 척하나 결합시켜주고 쓰면 됩니다.

필터는 헤파 필터를 씁니다.

인터넷에서 9300원인가에 추가 필터를 팔더 군요.. ㅎㅎ


그리고 차에가서 청소를 해봤는데... 

흡입력 정말 좋습니다 (세차장 청소기 수준) 

영혼까지 탈탈털어 빨아 들일수 있을듯합니다.


다만 시끄러워요.청소한번 하면 온동네에서 저 집청소 하는지 알수 있을정도 수준이에요 --;

무게가 엄청 무거운건 아닌데 살짝 무거운 느낌. 그리고 가전제품 전문 브랜드랑 비교되는게 밑이 좀 허한 느낌 ..


무엇보다 최대 장점은 기존 보쉬 공구가 있다면 가격이 착하다는것 아니겠습니까.


장점

- 본체만 봤을때 나름 저렴한 가격 (18V 기준 5.1만)

- 기존 보쉬 공구랑 호환되는 베터리...보장되는 베터리 품질.

- 영혼까지 빨아 들일만한 강력한 흡입력

- 헤파필터사용 

- 나름 저렴한 필터가격


단점.

- 기존에 보쉬 공구가 없다면 비싼가격 (풀셋 15만원 정도..)

- 시끄럽다.

- 2ah끼웠는데도 살짝 무겁다.

- 청소기는 밑이 살짝 무거워야 되는데 밑이 좀 가벼운 느낌.


총평.

흡입력은 무지 맘에 들고 나름 착한 가격에 만족하는 물건 입니다.

특히 자취하는데 사용하면 최고 일것 같습니다.


지.르.세.요.


Comment +4

quirky 란 사이트를 아시나요?

사람들의 아이디어를 실제 제품으로 만들어서 파는 사이트입니다.

온갖 아이디어 제품이 다 나오는데..


실제로 유용한 것도 똥망인 제품들도 있습니다.


이번 블프때 미친듯이 세일을 해서 구매하게된. Wrapster 입디나.

이어폰 줄을 정리 해주는 물건이죠.

뭐 대충이런....  멋지지 않나요.  이거 있으면 가방에 이어폰 막 굴러다니지는 않겠다 싶어서 지른거죠.  0.5불이였나. 


https://www.quirky.com/shop/31-wrapster-earbud-cord-wrap


평상시에는 이렇게 다니면 됩니다.

근데 이넘이 은근 불편하고 문제가 많습니다.  이건뭐 저만 그런지도 모르죠.

감을때 꼼꼼히 신경써서 감아야 됩니다.

대충감으면 이렇게 됩니다.   

근데 더 큰 문제는 이어버드의 리모콘 부분이 감을때 걸립니다 --;

이것때문에 저딴 모양이 나오게 되는 거죠.  더불어서 이러폰 정리 하는 부분도 은근 걸립니다.


그리고 이거 달고 있으면 무겁습니다. --;

지하철 탈때 사람들가방에 은근 더 잘걸립니다.


결론 적으로 말씀드리면...


제기준에는 이거 별로 입니다 --;  

이어폰줄 정리하는데는 뭐 그럭저럭입니다.

가격까지 비싼거였으면 억울할뻔 했습니다. --;


장점

- 이어폰줄이 정리된다.

단점

- 리모콘이 걸려 줄정리시에 에러사항이 꽃핀다.

- 목에 달고 있으면 은근 무겁다.

총평 (★★☆☆☆)

-사진만 멋지구리함. 가격도 비싸게 구매했으면 무지 억울할뻔 했음.




Comment +0

초간단 크림 스파게티 만들기를 한번 해보겠습니다.


재료는 간단합니다.

- 코스트코표 조개스프  (6개 12500원정도) -> 알프레도 소스보다 이게 더 풍미가 있고 좋습니다.

- 코스트코 표 베이컨 - 아마도 샐러드용(?) (16000원정도)

코스트코 표 스파게티면 (8개 9600원정도)

- 후추

- 우유 또는 생수(면수써도됨)

- 파마산치즈 갈아 놓은거 (코코꺼가 쌈)



1. 냄비에 소금을 넣고 면을 삷습니다. (8~9분)

  저거 반절하면 3인분정도 나옵니다. (남자기준)

  중간에 면이 냄비에 안 눌러 붙게 한번만 저어주면 됨.

2. 살짝 달군 후라이팬에 베이컨을 한 주먹 넣고(더 넣어도 됩니다.) 편마늘 대충 넣고 후추뿌리고 살짝 뽁습니다.  

  펜에 베이컨 기름이 묻어 나올정도...  불은 강으로..

  집에 버섯, 새우, 기타 등등이 있으시면 같이 넣고 볶으시면 됩니다.

3. 대충 볶았으면 다 익은 면을 넣고 볶습니다. 

   암튼 면에 베이컨이 골고루 붙으면 됩니다.  이때 불은 중불로..  

   센불로 하면 면이 눌러 붙습니다. 면을 볶아서 기름코팅한다고 생각하시면 됩니다.

4. 조개스프 다 때려를 넣습니다.  우유를 넣습니다.  

   우유는 면이 살짝 잠길 정도로 3~4인분이면 500ml한통 다 넣습니다.

   전 요즘은 1000ml는 넣는 듯 암튼 많이 넣어도 상관없습니다.  

   우유를 넣은 다음  체다치즈(슬라이스 한장), 파마산치즈를 마구 때려넣습니다.

6. 휘휘저은 다음 팔팔 끓을 때까지 둡니다.

7. 끓으면 중불로 두고 더 끓여서 살짝 쫄입니다.

8. 그릇에 담으시면 됩니다..



Comment +0


첨에 아이폰용 네비게이션이 나왔을때 올레네비를 써보고..

아~ 네비를 이따구로 만들수도 있구나를 느꼈습니다.  (요즘은 좀 좋아졌다고)

휴먼 네비보다 구린 네비라뉘!!!

그래서 찾아서 깐 김기사 입니다.  한 3년도 넘게 사용했으니 오래 사용했죠. 그 만큼 김기사 화면에 익숙해져 있습니다. 

이번에 번호이동으로 KT에서 SK로 갈아 타면서 그 좋다는 티맵을 이용해봤습니다.

생각보다는 별로 이더군요.


며칠동안 왔다 갔다 하면서 사용 하면서 두 네비게이션에 대한 사용기를 적어 봅니다.

먼져 김기사 화면 입니다.

아이폰 6인데..  위에 상태바가 안나옵니다. 뭐 이건 불편하지는 않으니 패스.


이건 티맵화면 입니다.


티맵 속도 안찍히는거 보이시나요?  그리고 화면에 U턴은 한지가 1시간도 휠씬 지났습니다.

이번버젼만 그런지 몰라도 버그쩝니다 --;


도착시간에 대한 정확성은 비슷비슷합니다.


고속도로에서는 둘다 길안내가 비슷한데. 시내로 들어 가면 티맵은 1,2분 빨리 갈려고 골목으로 엄청 돌립니다.

맨날 다니는 길이라 막히는 시간대 막히는길 다알고 있는 도로에서 사용했습니다.

그리고 티맵은 말이 많아요. 전 화면 안보고 소리만 듣고 가는데 귀잖을 정도 --;


김기사의 좋은점.

- 공짜.

- HUD모드

- 벌집(?) 으로 이전에 갔던곳 저장.

김기사의 나쁜점.

- 중간에 나오는 광고  (이건뭐 김기사 제작사도 먹고 살아야 되니...)

- 아주 가끔 길못찾아 헤멤.


티맵의 좋은점.

- 백그라은드에서도 음성안내 지원.,

- 주유소 정보 표시.

티맵의 나쁜점.

- 말이 너무 많은

- 버그 쩔음.

- 골목으로 자꾸 안내.


아마도 계속 김기사 쓸것 같습니다.  아직은 티맵 적응기간이라...


Comment +0

스타 벅스에서 인터넷 쓰실때 팁입니다.


일반적으로 나오는 스벅 인터넷 접속 인증 화면 입니다.

온갖 개인 정보를 다넣어야 됩니만...

언어를 영어로 선택하시면 간단하게 이메일 주소 만으로 사용이 가능합니다.

아놔 차별 하는 거여 뭐여 --;






Comment +0

가장 많이 쓰이고 가장 문서도 많은 아파치 웹서버를 설치 해보다록 하자.


Apache 설치

# pkg install apache24

# echo 'apache24_enable="YES"' >> /etc/rc.conf

기본 환경을 설정한다. 꼭 안해도 된다. 하지만 포트 설정등을 변경해야되면 반드시 하시길....

# vi /usr/local/etc/apache24/httpd.conf 

............

ServerAdmin your@email.com

ServerName your.domain.com:<포트>

포트는 기재하지 않으면 기본 80으로 설정된다.

웹서버 구동.

apachectl start

브라우져로 설치된 페이지를 확인시 다음과 같은 화면을 볼수 있다.


php 설치.

php는 옵션이 많은 관계로 portmaster를 이용하여 설치 하는 것이 좋다.

# portmaster -dwv /ust/ports/lang/php56-extension

# portmaster -dwv /usr/ports/www/mod_php56

# cp /usr/local/etc/php.ini-development /usr/local/etc/php.ini

또는 

# cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

숏태그 ( <? ?> ) 사용을 위해 다음과 같이 php.ini를 변경한다.

vi /usr/local/etc/php.ini

; This directive determines whether or not PHP will recognize code between

; <? and ?> tags as PHP source which should be processed as such. It is

; generally recommended that <?php and ?> should be used and that this feature

; should be disabled, as enabling it may result in issues when generating XML

; documents, however this remains supported for backward compatibility reasons.

; Note that this directive does not control the <?= shorthand tag, which can be

; used regardless of this directive.

; Default Value: On

; Development Value: Off

; Production Value: Off

; http://php.net/short-open-tag

short_open_tag = On

php 페이지 확인시 아래와 같은 메세지가 뜰수 있다.

Warning: phpinfo(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /usr/local/www/apache24/data/index.php on line 2

timezone설정을 해주면 간단히 해결된다.

vi /usr/local/etc/php.ini

[Date]

; Defines the default timezone used by the date functions

; http://php.net/date.timezone

date.timezone = Asia/Seoul

timezone설정은 아래의 페이지를 참조 한다.

apache에 정상적으로 사용가능한지 확인을 위해 다음과 같이 해본다.

# cat /usr/local/etc/apache24/httpd.conf | grep php

LoadModule php5_module        libexec/apache24/libphp5.so

이제 아파치에서 php파일이 정상적으로 처리될수 있도록 아파치 설정을 변경한다.

# vi /usr/local/etc/apache24/httpd.conf 

............

<IfModule dir_module>

    DirectoryIndex index.php index.html 

</IfModule>

...............

<IfModule mime_module>

  .........

    # for PHP

    AddType application/x-httpd-php .php .inc .html .htm

    AddType application/x-httpd-php-source .phps

</IfModule>

아파치를 재시작 한다.

# apachectl restart

테스트를 위해 아래의 페이지를 작성한다.

# vi /usr/local/www/apache24/data/index.php 

<?php

phpinfo();

?>

아래와 같은 페이지가 뜬다면 정상적으로 등록이 되었다고 생각하면 된다.

확인이 끝나면 보안을 위해 반드시 테스트용 출력페이지를 삭제 하는 것이 좋다.


Comment +0