Java -> TCP -> node.js(字符串数据传输)

标签 java node.js sockets tcp

客户端(Java)

Socket tcpClient = new Socket("localhost", 6000); 
String msg ="test";
DataOutputStream os = new DataOutputStream(tcpClient.getOutputStream());
PrintWriter pw = new PrintWriter(os);
pw.println(msg);
pw.flush();

服务器(node.js JavaScript)

var net = require('net');
var server = net.createServer(function (c)
{ //'connection' listener
    log('Java client connected to this nodeServer');
    c.on('data', function (data)
    {
        console.log(data);   
    });
    c.on('end', function ()
    {
        console.log('nodeServer disconnected');
    });
});
server.listen(6000, function ()
{ //'listening' listener
    console.log('nodeServer listening port:6000');
});

结果

nodeServer listening port:6000

Java client connected to this nodeServer

<Buffer 74 65 73 74 0a>

连接成功,但很明显,我需要结果中有'test'字符串。

对于数据,到目前为止我使用 String 来简化我的问题,但是,能够传输任何对象是理想的。

也许,我需要使用 JSON 框架(用于非二进制对象)通过 Java/TCP 发送,但不确定。


附言。 这只需修改为

 var data1 = data.toString('utf-8');
 console.log(data1); 

只是为了分享。

最佳答案

这只需修改为

 var data1 = data.toString('utf-8');
 console.log(data1); 

只是为了分享。

关于Java -> TCP -> node.js(字符串数据传输),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15401215/

相关文章:

sockets - 在多宿主主机中选择接口(interface)

java - maven如何进行Jar下载?

php - C++ 非阻塞代理检查/打开

javascript - 使用 process.env 创建单独的数据库时,Firebase 找不到 databaseURL

java - 我可以将 C# 客户端中的缓冲区发送到 java SocketChannel 服务器吗?

java - 如果我尝试通过 DatagramChannel 发送空 UDP 数据包但底层套接字缓冲区已满,会发生什么情况?

java - SQL 错误 : 17008, SQLState:空

java - 申请继承的建议

java - 从控制台读取用户输入并将其写入 JSON

javascript - 如何重构 switch 案例以调用类中的方法?