0

Node JS サーバーが UDP または TCP クライアントと通信できるようにします。

私の質問:

  1. 別の言語でソケット クライアントを作成したいが、サーバーが nodejs を使用している場合の手順または提案は何ですか?
  2. javaでUDPクライアントを作成したのですが、Node.jsサーバーに接続したいのですが、接続できませんでした。ノードjsでは、サーバーに接続するための何かルールがあると思いますが、どう思いますか?
4

3 に答える 3

3

UDP や TCP などの nodejs でソケットを実装したいのですが、別のプログラミングを使用してソケット クライアントを作成したいのです。

UDP または TCP のいずれかを選択する必要があります。各プロトコルには、長所と短所があります。そのサイトの2つの画像が本当に好きです。

TCP

利点 TCP

UDP

ここに画像の説明を入力

特にUDPの実装経験があまりない場合は、TCPを使用することをお勧めします。さらに、HTTP (TCP の上) を使用することをお勧めします。これは、どのプログラミング言語でも広く利用できるためです。非常に簡単な解決策は、REST API を定義することだと思います。ノード側でexpress.jsを使用し、クライアント側としてスーパーエージェントを使用してサーバー側を簡単に作成できます(他のサーバー実装と対話します)。Javaでは、たとえば、atmosphere-spade-serverasync-http-clientを使用できます

別の言語でソケット クライアントを作成したいが、サーバーが nodejs を使用している場合の手順または提案は何ですか?

データ交換にはJSONを使用することをお勧めします。どの言語でも確実な実装を簡単に見つけることができ、ユーザーのブラウザーもそれをサポートしています。

于 2012-04-09T22:24:14.220 に答える
2

TCPおよびUDPソケットは言語に依存しません。NodeJSにUDPサーバーがあり、JavaにUDPクライアントがある場合、これはそのままで機能するはずです。

したがって、NodeJSまたはJavaプログラムで何か問題が発生している必要があります。これが簡単なHelloworldプログラムです:

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();
   }
}
于 2012-04-09T15:10:23.783 に答える
0

TCPまたはUDPを介して2つの異なるプログラムを接続しても問題はありません。実際、基本的な目的の1つは、そのようなシナリオに対処することです。

ここに仕様を使用してノードjsサーバーを作成してみてください。動作するはずです。それでも解決しない場合は、Javaコードも投稿してください。掘り下げることができます。

于 2012-04-09T14:59:50.143 に答える