2013-12-16 2 views
1

안드로이드 타블렛으로 연결하려고하는 개발 컴퓨터의 서버에서 실행 중이지만 연결에 실패했기 때문에 ConnectionException이 표시됩니다.android에서 node.js 서버에 연결할 때 문제가 발생했습니다.

내 개발 컴퓨터에서 (그리고 'localhost'대신 공인 IP 주소를 사용하여) 정확한 클라이언트 코드를 테스트했으며 이것이 작동합니다. 하지만 일단 안드로이드에서 testiing로 전환하면, 그런 행운은 없습니다.

참고 : 이것은 Why I get nothing back from node.js server on androidConnecting to a nodejs server via android and getting a timeout exception의 문제와 비슷하지만 유용하지 않은 답변입니다.

서버 (Node.js를)

var net = require('net'); 
var couchDB = require('./serverTest'); 
var async = require('async'); 

async.parallel([ 
function(callback) { 
    console.log('first'); 

    couchDB.getMapData(function(data){ 
     var mapDataString = JSON.stringify(data); 
     callback(null, mapDataString); 
    }); 
}, 
function(callback) { 
    console.log('second'); 
    var server = net.createServer(function(c) { //'connection' listener 
     console.log('server connected'); 

     c.on('end', function() { 
      console.log('server disconnected'); 
     }); 

     callback(null, c); 
    }).listen(7000, null); 
}], 
function(err, responses) { 
    var socket = responses[1]; 
    var mapDataString = responses[0]; 
    console.log('writing data'); 
    socket.write(mapDataString); 
    socket.end(); 
}); 

클라이언트 (자바)

public class NodeClientTest { 
private static final String IP_ADDRESS = "142.169.196.74"; 
    public static void main(String[] args){ 

     String jsonString = null; 
     Socket clientSocket = null; 
     try{ 
      clientSocket = new Socket(IP_ADDRESS, 7000); 

      byte[] buffer = IOUtils.toByteArray(clientSocket.getInputStream()); 
      jsonString = new String(buffer); 
      System.out.print(jsonString); 
     } 
     catch(IOException e){ 
      e.printStackTrace(); 
     } 
     finally{ 
      try{ 
       clientSocket.close(); 
      } 
      catch(Exception e){//not initialized 
       e.printStackTrace(); 
      } 
     } 
    } 
} 

나는 그것이 Windows 방화벽과 함께 할 수있는 뭔가가 있다고 생각,하지만 난에 가서 허용 'Node.js'는 방화벽을 통해 통신합니다. 내가해야 할 일이 있거나 실종 됐습니까?

+0

가정용 네트워크에 있습니까? 와이파이? 라우터는 포트 포워딩을 허용합니까? – curtisk

+0

회사 네트워크에서 포트 포워딩에 대해 잘 모름 – kburbach

답변

0

어느 쪽이 작품 만든 두 가지 중 하나를 방화벽을 통해 포트 7000을 허용하는 방화벽

  • 을 통해 Node.js를셔서 한 다음 다시 시작한 후

    1. OS를 다시 시작을

    따라서 방화벽 설정을 변경 한 후 다시 시작하십시오 (이 사실을 알고 있어야 함) - 문제가 해결 될 수 있습니다.

  • 관련 문제