簡體   English   中英

無法從Android連接到Node.js服務器

[英]Trouble connecting to node.js server from android

我正在嘗試與Android平板電腦連接的開發機器上的服務器上運行,但是由於連接失敗,我遇到了ConnectionException

我已經在開發機器上測試了確切的客戶端代碼(並且使用了公共IP地址而不是“ localhost”),並且可以正常工作。 但是一旦我切換到Android上進行測試,就沒有這種運氣了。

注意:這類似於為什么我無法從android上的node.js服務器返回任何內容以及通過android連接到nodejs服務器並獲得超時異常的問題 ,但均未得到有用的答案。

服務器(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();
});

客戶端(Java)

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”通過防火牆進行通信。 還有什么我需要做的,還是想念?

兩項工作之一使這項工作得以完成:

  1. 讓Node.js通過防火牆后重新啟動操作系統
  2. 允許端口7000通過防火牆,然后重新啟動

因此,請確保在更改防火牆設置后重新啟動(我應該知道這一點...)-這樣可以解決您的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM