ポートで TCP パケットをリッスンし、そこからデータを取得して、それを UDP ポートに転送しようとしています。その理由は、UDP ポートでリッスンしているソフトウェアが UDP のみを受け入れるためですが、javascript websockets を使用して、TCP のみを使用するデータを送信したいと考えています。
2553 次
2 に答える
1
WebSockets は単なる TCP ソケットではありません。プロトコルは基本的に HTTP アップグレード ハンドシェイクです (WebSocket 固有のセキュリティ ハンドシェイクが散りばめられています)。
ポートをリッスンして盲目的にデータを転送するだけでは、ブラウザーは実際には WebSocket 接続を確立できないため、機能しません。
WebSocket の終わりを処理するためにsocket.ioを使用することを検討しましたか?
次に、dgram
UDP 経由でデータを送信するために使用するだけです。
io.sockets.on('connection', function (socket) {
socket.on('sendudp', function (data) {
var buf = new Buffer(data), udp = dgram.createSocket("udp4");
udp.send(buf, 0, buf.length, 41234, "localhost", function(err, bytes) {
udp.close();
});
});
});
41234
とlocalhost
を目的の宛先ポートとホストに置き換えます。
于 2012-10-31T02:30:11.583 に答える
1
「TCP パケット」のようなものは存在しないため、受信する方法はありません。TCP はバイトストリームを提供します。UDP レシーバーが期待するデータグラムが、TCP ストリームで受信することによって得られるものと一致するかどうかは、あなただけが知ることができますが、非常に問題があることに注意する必要があります。
于 2012-10-31T09:48:31.027 に答える