2016-05-08 6 views
2

Ich habe einen Server auf node.js und Client auf Java. Wenn der Client von Java eine Verbindung zum Nodejs-Server herstellt, zeigt er mir einen Fehler an, der unten angegeben ist.Verbindung zwischen Nodejs und Java. Wenn Client von Java eine Verbindung zu Nodejs Server dann zeigt es mir Fehler,

Ich habe einen Server auf node.js

const net = require('net'); 
const server = net.createServer((c) => { 
// 'connection' listener 
console.log('client connected'); 
c.on('end',() => { 
console.log('client disconnected'); 
}); 
c.write('hello from server\r\n'); 
c.pipe(c); 
}); 

server.on('data',()=>{ 
Console.log(data); 
}); 
server.on('error', (err) => { 
throw err; 
}); 
server.listen(6969,() => { 
console.log('server bound'); 
}); 

ich einen Java-Code hava.

public class NodeJsEcho { 
// socket object 
private Socket socket = null; 
public static void main(String[] args) throws UnknownHostException,  
IOException, ClassNotFoundException { 
    // class instance 
    NodeJsEcho client = new NodeJsEcho(); 
    // socket tcp connection 
    String ip = "127.0.0.1"; 
    int port = 6969; 
    client.socketConnect(ip, port); 
    // writes and receives the message 

    String message = "message123"; 
    System.out.println("Sending: " + message); 
    String returnStr = client.echo(message); 
    System.out.println("Receiving: " + returnStr); 
    } 
// make the connection with the socket 
private void socketConnect(String ip, int port) throws UnknownHostException,  
IOException{ 
    System.out.println("[Connecting to socket...]"); 
    this.socket = new Socket(ip, port); 
    } 
// writes and receives the full message int the socket (String) 
public String echo(String message) 
{ 
    try { 
     // out & in 
     PrintWriter out = new PrintWriter(getSocket().getOutputStream(),  
     true); 
     BufferedReader in = new BufferedReader(new 
     InputStreamReader(getSocket().getInputStream())); 
     // writes str in the socket and read 
     out.println(message); 
     String returnStr = in .readLine(); 
     return returnStr; 
     } catch (IOException e) 
    { 
      e.printStackTrace(); 
      } 
    return null; 
    } // get the socket instance 
private Socket getSocket() 
{ 
    return socket; 
    } 

} 

Sein zeigt mir den Fehler auf Serverseite:

client connected 
    events.js:141 
    throw er; // Unhandled 'error' event 
^

Error: read ECONNRESET 
at exports._errnoException (util.js:870:11) 
at TCP.onread (net.js:550:26) 
Done. 
+0

Fehler auf der Clientseite? Verbindet es überhaupt? – vidit

+0

Nein, kein Fehler auf der Client-Seite. –

+0

Die Client-Seite ist: [Verbindung zu Socket ...] Senden: message123 Empfangen: Hallo vom Server –

Antwort

1

Sie sind nicht die Buchse auf der Client-Seite zu schließen - Verbindung zurückgesetzt verursacht.

// In echo() 
in.close(); 
out.close(); 

// In main() 
getSocket().close(); 
+0

Nein. Es funktioniert überhaupt nicht. –

+0

@QandeelHaider - Versuchen Sie auch, die Streams zu schließen. – vidit

+0

Vielen Dank. Es funktioniert gut. –

Verwandte Themen