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

Posted

技术标签:

【中文标题】使用套接字将数据从 node.js 发送到 Java【英文标题】:Sending data from node.js to Java using sockets 【发布时间】:2012-01-14 12:00:54 【问题描述】:

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

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

你们中有人知道我该怎么做吗?

谢谢

【问题讨论】:

你考虑过内置的net.Socket吗? 我升级到最新版本的node,网上的东西好像没有.connect这个方法,所以我不能用,不知道为什么。 【参考方案1】:

您可以使用 node.js 中的内置套接字来执行类似的操作(在 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();
    


Node.js:

var net = require('net');

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

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

client.end();

还有关于套接字的 node.js 文档的链接:http://nodejs.org/docs/latest/api/net.html

【讨论】:

感谢您的回复!我还有一个问题:当我执行net.connect(...) 时,节点编译器抱怨说Object #<Object> has no method 'connect',你知道发生了什么吗?

以上是关于使用套接字将数据从 node.js 发送到 Java的主要内容,如果未能解决你的问题,请参考以下文章

如何将数据从 Android 中的数据报套接字发送到 Node js 服务器?

从 PHP 向 Node.js 发送消息

c# SocketIoClientDotNet, node js socket.IO

在 node.js 中打开套接字时发送数据

如何使用 Node.js 将 JSON 数据从 Node.js 发送和获取到 HTML

从 zmq 套接字返回值