Hi Hi

'sl4a HTTP 서버'에 해당되는 글 1건

  1. Python sl4a - HTTP 서버

Python sl4a - HTTP 서버

 

파이썬에서는 HTTP를 처리하는 라이브러리와 HTTP 서버의 구현을 돕는 라이브러리들이 갖추어져있다. 이를 이용하면 HTTP 서버를 쉽게 만들어 낼 수 있다.

simpleHTTPServer 라이브러리를 사용한다. 현재 디렉터리가 루트이고 포트 8000으로 요청을 받는 웹 서버가 완성된다.

import SimpleHTTPServer
SimpleHTTPServer.test()

 

안드로이드 기기에서도 마찬가지 방법으로 웹 서버를 띄울 수 있다. 앞의 예제를 조금 확장해서, 이번에는 기기의 카메라 응용 프로그램이 사진들을 저장하는 디렉터리를 현제 디텍터리로 만든 후에 웹 서버를 띄우기로 한다. 그러면 같은 네트워크에 있는 다른 컴퓨터들에서도 안드로이드 기기의 사진들에 접근할 수 있다.

import SimpleHTTPServer
from os import chdir
chdir('/sdcard/DCIM/100MEDIA')
SimpleHTTPServer.test()

 

다른 컴퓨터에서 이 서버에 접속하려면 기기의 IP 주소를 알아야 한다. 한 가지  방법은 WiFi 퍼사이드의 wifiGetConnectionInfo 함수를 이용하는 것이다.이 함수는 WiFi 무선에 연관된 현재 IP 주소를 돌려준다. 이 함수가 돌려주는 값이 하나의 긴 정수이다. 파이썬의 두 라이브러리를 조합해서 알수 있다.

기기의 IP 주소를 makeTost로 표시해 주는 스크립트이다.

import android, socket, struct
droid = android.Android()
ipdec = droid.wifiGetConnectionInfo().result['ip_address']
ipstr = socket.inet_ntoa(struct.pack('L',ipdec))
droid.makeToast(ipstr)

 

앞의 네줄짜리 웹 서버 코드를 도입해서, 서버를 뛰우면서 IP 주소도 표시하도록 한다.

import android, socket, SimpleHTTPServer, struct
from os import chdir
droid = android.Android()
ipdec = droid.wifiGetConnectionInfo().result['ip_address']
ipstr = socket.inet_ntoa(struct.pack('L',ipdec))

chdir('/sdcard/DCIM/100MEDIA')
print( "connect to %s" % ipstr )
SimpleHTTPServer.test()

 

 

'' 카테고리의 다른 글

Python sl4a - 대화 상자 기반 GUI  (0) 2012.06.16
Python sl4a - 웹에서 파일 내려 받기  (0) 2012.06.15
Python sl4a - HTTP 서버  (0) 2012.06.14
Python sl4a - 자동 실행기  (0) 2012.06.13
Python sl4a - 구글 문서와 동기화하기  (0) 2012.06.12
Python sl4a - 시간 기반 동작  (0) 2012.06.11