아오...생각해보니까 안되는건데, 삽질하고 있었긔ㅠㅠ
안드로이드폰에서 서버를 구축하면 일단 3G에서는 외부에서 접속을 할 수 없어요. 안드로이드폰 웹브라우저에서만 접속할 수 있어요~
그래서 WI-FI모드에서만 가능하네요. WI-FI모드에서도 같은 망에 있어야지 가능하죠~
음....어차피 내가 만드려고 하는 것은 파일교환하는 거라서 뭐 WI-FI모드에서만 써도 될 듯...

일단 잡소리고-_-

Android에는 HttpClient와 HttpCore가 내장탑재되어있습니다. 이걸 이용하면 간단한 웹서버를 만들 수 있지요. 예제는 아래사이트에서...
확인할 수 있는데, 이상한 게 이거 그대로 쓰려고 하면 클래스가 몇 개 없어서 에러납니다.
이걸 보면 Android에 있는 HttpCore에 없는 클래스를 사용하더라구요. 그래서 Tutorial을 잘 보니까 이렇게 말고 다르게 써야하더라구요.
그래서 살짝 고쳐줘야합니다. 바뀐 부분만 보면-_-

RequestListenerThread 클래스의 생성자


public RequestListenerThread(int port, final String docroot) throws IOException {
        this.serversocket = new ServerSocket(port);
        
        this.params = new BasicHttpParams();
        this.params
            .setIntParameter(CoreConnectionPNames.SO_TIMEOUT, 5000)
            .setIntParameter(CoreConnectionPNames.SOCKET_BUFFER_SIZE, 8 * 1024)
            .setBooleanParameter(CoreConnectionPNames.STALE_CONNECTION_CHECK, false)
            .setBooleanParameter(CoreConnectionPNames.TCP_NODELAY, true)
            .setParameter(CoreProtocolPNames.ORIGIN_SERVER, "HttpComponents/1.1");

        BasicHttpProcessor httpproc = new BasicHttpProcessor();
        httpproc.addInterceptor(new ResponseDate());
        httpproc.addInterceptor(new ResponseServer());
        httpproc.addInterceptor(new ResponseContent());
        httpproc.addInterceptor(new ResponseConnControl());
        
        // Set up request handlers
        HttpRequestHandlerRegistry reqistry = new HttpRequestHandlerRegistry();
        reqistry.register("*", new HttpFileHandler(docroot));
        
        this.httpService = new HttpService(httpproc, new DefaultConnectionReuseStrategy(), new DefaultHttpResponseFactory());
        this.httpService.setHandlerResolver(reqistry);
    }
생성자 부분이 요렇게 바뀌어야합니다. 생각해보니....이거말고 고친게 없네요-_-
아마 잘 될겁니다 으핫.....

이건 풀소스-_-
PS. 티스토리는 개당 10메가만 안넘으면 계속 올릴 수 있어서 좋아~

 
Posted by 머드초보
,