2016-05-08 12 views
2

私はnode.jsにサーバーを、Javaにクライアントを持っています。 JavaのクライアントがNodejsサーバに接続すると、以下に示すエラーが表示されます。NodejsとJavaの間の接続。 Javaのクライアントがnodejsサーバーに接続すると、エラーが表示されます。

私はJavaコードをHAVA 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'); 
}); 

上のサーバーを持っています。

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; 
    } 

} 

そのは私のサーバー側のエラーを示しています

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

クライアント側でエラーが発生しましたか?それはまったく結構ですか? – vidit

+0

クライアント側でエラーは発生しません。 –

+0

クライアント側は次のとおりです。[ソケットに接続中...] 送信:message123 受信:hello from server –

答えて

1

あなたは、クライアント側でソケットをクローズしていない - 接続リセットの原因となります。

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

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

いいえ、まったく動作しません。 –

+0

@QandeelHaider - ストリームを閉じてみてください。 – vidit

+0

ありがとうございます。それはうまく動作します。 –

関連する問題