使用套接字将数据从node.js发送到Java

Mas*_*iar 7 javascript java sockets node.js

我正在尝试通过套接字将数据从node.js发送到Java.我四处搜索,但没有什么是真正有用的.我习惯了socket.io,但在这种情况下它似乎并不适合这个.似乎node.js的所有套接字扩展都不适合发送消息,而是听取消息和回答某些内容.

我的Java应用程序基本上应该从node.js接收一些工作,完成工作并将一些结果发送回node.js.不,这项工作不能在node.js上完成,它必须由Java完成(实际上是Scala,但无论如何).

你们有谁知道我怎么能这样做?

谢谢

Tre*_*xXx 15

您可以使用node.js中的build in socket来执行类似的操作(在java和node.js中都非常简单,但您会明白这一点):

Java:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

public class Test {

    public static void main(String[] args) {
        ServerSocket server;
        Socket client;
        InputStream input;

        try {
            server = new ServerSocket(1010);
            client = server.accept();

            input = client.getInputStream();
            String inputString = Test.inputStreamAsString(input);

            System.out.println(inputString);

            client.close();
            server.close();
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static String inputStreamAsString(InputStream stream) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(stream));
        StringBuilder sb = new StringBuilder();
        String line = null;

        while ((line = br.readLine()) != null) {
            sb.append(line + "\n");
        }

        br.close();
        return sb.toString();
    }

}
Run Code Online (Sandbox Code Playgroud)

Node.js:

var net = require('net');

var client = net.connect(1010, 'localhost');

client.write('Hello from node.js');

client.end();
Run Code Online (Sandbox Code Playgroud)

以及有关套接字的node.js doc的链接:http://nodejs.org/docs/latest/api/net.html