我希望Node JS服务器与UDP或TCP客户端通信。
我的问题:
答案 0 :(得分:3)
如果我的问题不好,我就知道了,我的意思是我想用socket实现socket nodejs喜欢UDP和TCP,我想用另一个创建套接字客户端 编程。
你必须choose between UDP or TCP.每个协议都有它的优点/缺点。我非常喜欢该网站上的两张图片。
我建议您使用TCP,尤其是当您没有很多实施UDP的经验时。此外,我建议你使用HTTP(在TCP之上),因为它也可以在任何编程语言中广泛使用。我认为一个非常简单的解决方案是定义REST API。您可以使用节点端的express.js和superagent作为客户端(与其他服务器实现交互)轻松创建服务器端。在java上,您可以使用atmosphere-spade-server和async-http-client
当我想创建套接字客户端时,有哪些步骤或建议 用另一种语言,但服务器正在使用nodejs?
我建议使用JSON进行数据交换。您可以轻松找到任何语言的可靠实现,用户浏览器也支持它。
答案 1 :(得分:2)
TCP和UDP套接字与语言无关,如果NodeJS中有UDP服务器,Java中有UDP客户端,则应该可以直接使用。
所以你必须在NodeJS或Java程序中做错事。这是一个简单的Hello world程序:
Server.js:
var dgram = require("dgram");
var server = dgram.createSocket("udp4");
server.on("message", function (msg, rinfo) {
console.log("server got: " + msg + " from " +
rinfo.address + ":" + rinfo.port);
});
server.on("listening", function () {
var address = server.address();
console.log("server listening " +
address.address + ":" + address.port);
});
server.bind(41234);
// server listening 0.0.0.0:41234
和UDPClient.java:
import java.io.*;
import java.net.*;
class UDPClient
{
public static void main(String args[]) throws Exception
{
DatagramSocket clientSocket = new DatagramSocket();
InetAddress IPAddress = InetAddress.getByName("localhost");
byte[] sendData = new byte[1024];
String sentence = "Hello World!";
sendData = sentence.getBytes();
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 41234);
clientSocket.send(sendPacket);
clientSocket.close();
}
}
答案 2 :(得分:0)
通过TCP或UDP连接两个不同的程序不应该有任何问题。事实上,其中一个基本目的是解决这些问题。
尝试使用here中的spec编写节点js服务器。它应该工作。如果它仍然没有,那么也发布您的Java代码。我们可以通过它来挖掘它。