10 Stimmen

Die TCP-Socket-Schreibfunktion in Node.js' "net"-Paket schreibt nicht in den Socket.

Ich habe Probleme beim Schreiben von 2 Nachrichten an einen TCP-Socket mit dem Node.js-Netzwerkpaket.

Der Code:

var net = require('net');

var HOST = '20.100.2.62';
var PORT = '5555';

var socket = new net.Socket();

socket.connect (PORT, HOST, function() {
console.log('VERBUNDEN MIT: ' + HOST + ':' + PORT);
// Schreiben einer Nachricht an den Socket, sobald der Client verbunden ist, wird der Server sie als Nachricht vom Client empfangen
  socket.write('@!>');       
  socket.write('RIG,test,test,3.1');

});

// Einen 'data'-Ereignishandler für den Client-Socket hinzufügen
// data ist das, was der Server an diesen Socket gesendet hat
socket.on('data', function(data) {
  console.log('DATEN: ' + data);
  // Client-Socket vollständig schließen
  //    client.destroy();
});

socket.on('error', function(exception){
  console.log('Ausnahme:');
  console.log(exception);
});

socket.on('drain', function() {
  console.log("Abfluss!");
});

socket.on('timeout', function() {
  console.log("Zeitüberschreitung!");
});

// Einen 'close'-Ereignishandler für den Client-Socket hinzufügen
socket.on('close', function() {
   console.log('Verbindung geschlossen');
});

Ich habe auch versucht, die angeblich korrekte Funktion net.createConnection(arguments...) aus dem Netzwerkpaket zu verwenden, aber ohne Erfolg.

Ich kann auf meiner Serverseite sehen, dass die Verbindung zum Socket wie erwartet erfolgt, aber keine Daten vom Server empfangen werden, weshalb ich vermute, dass etwas mit der Verwendung der socket.write-Funktion falsch ist. Vielleicht verwirren die ersten Zeichen der Zeichenfolgen?

Jede Hilfe wäre sehr geschätzt.

Vielen Dank.

24voto

Linus Thiel Punkte 37466

Es hängt davon ab, mit welchem Server Sie sprechen, aber Sie sollten Ihre Daten wahrscheinlich mit Zeilenumbrüchen \n begrenzen:

socket.write('@!>\n');       
socket.write('RIG,test,test,3.1\n');

Für einige Server benötigen Sie möglicherweise \r\n.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X