使用套接字将数据从 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 服务器?
c# SocketIoClientDotNet, node js socket.IO