【问题标题】:Print data recieved by node.js server to console将 node.js 服务器接收到的数据打印到控制台
【发布时间】:2014-04-16 02:15:11
【问题描述】:

我有一个 java 类将数据发送到 node.js 服务器...

    import java.io.*;
    import java.net.Socket;

    public class TestingServer
    {
        public static void main(String[] args)
        {
    try
        {
            String testData = " Test data...";
            Socket nodejs = new Socket("localhost", 8080);
            Thread.sleep(100);
            for(int i = 1; i < 100; i++)
            {
                //Thread.sleep(400);
                sendMessage(nodejs, i + testData + " ");
                System.out.println(i + "  <----Message sent to server");
            }

        }
        catch (Exception e)
            {
            System.out.println("Server closed...oops");
            e.printStackTrace();
            }
        }

        public static void sendMessage(Socket s, String message) throws IOException
        {
            s.getOutputStream().write(message.getBytes("UTF-8"));
            s.getOutputStream().flush();
        }

    }

Node.js...

var javaPort = 8080;
var javaServer = require('net').createServer();
var WebSocketServer = require('ws').Server , javaSocket = new WebSocketServer({port: 90});

var fileData ;

console.log('====================================================');
console.log('Node.js/Java Communication Module');
console.log('====================================================');

javaServer.on('listening', function(){console.log('Server is listening on ' + javaPort);});

javaServer.on('error', function(e){console.log('Server error: ' + e.code);});

javaServer.on('close', function(){console.log('Server closed');});

javaServer.on('connection', function(javaSocket){
    var clientAddress = javaSocket.address().address+':'+javaSocket.address().port;
    console.log('Java ' + clientAddress + ' connected');});

var firstDataListener = function(data){
  fileData = data;
  console.log('Data recieved from java: ' + fileData);
}

javaSocket.on('data', firstDataListener);

javaSocket.on('close', function(){
console.log('Java ' + clientAddress + ' disconnected');
});

javaServer.listen(javaPort);

它成功监听并连接,

如何在服务器端控制台打印发送到服务器的数据?

有人告诉我有太多的代码,没有足够的细节来发布,所以我只是说一些让我可以发布的东西,因为这就是我所拥有的所有信息。

【问题讨论】:

  • javaServer.on('listening',...) 和 javaServer.on('connection',...)
  • 发出“监听”和“连接”事件
  • 您在服务器和客户端控制台上收到什么消息?
  • 在服务器上|======================================= ============= Node.js/Java 通信模块 ============================== ====================== 服务器正在监听 8080 Java localhost:8080|在客户端 |测试数据...

标签: java javascript node.js


【解决方案1】:

问题是您在服务器本身而不是每个传入连接上侦听“数据”。你想要这个:

// ...

javaServer.on('connection', function(javaSocket){
  var clientAddress = javaSocket.address().address+':'+javaSocket.address().port;
  console.log('Java ' + clientAddress + ' connected');
  javaSocket.on('data', function(data){
    fileData = data;
    console.log('Data recieved from java: ' + fileData);
  }).on('close', function() {
    console.log('Java ' + clientAddress + ' disconnected');
  });
});

javaServer.listen(javaPort);

【讨论】:

  • 啊,是的。谢谢楼主
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-28
  • 2013-03-29
  • 1970-01-01
  • 2016-07-20
相关资源
最近更新 更多