Tengo problemas para escribir 2 mensajes en un socket TCP usando el paquete net de node.js.Función socket.write de TCP en el paquete "net" de node.js que no está escribiendo en el socket
El código:
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('CONNECTED TO: ' + HOST + ':' + PORT);
// Write a message to the socket as soon as the client is connected, the server will receive it as message from the client
socket.write('@!>');
socket.write('RIG,test,test,3.1');
});
// Add a 'data' event handler for the client socket
// data is what the server sent to this socket
socket.on('data', function(data) {
console.log('DATA: ' + data);
// Close the client socket completely
// client.destroy();
});
socket.on('error', function(exception){
console.log('Exception:');
console.log(exception);
});
socket.on('drain', function() {
console.log("drain!");
});
socket.on('timeout', function() {
console.log("timeout!");
});
// Add a 'close' event handler for the client socket
socket.on('close', function() {
console.log('Connection closed');
});
También he probado la función net.createConnection supuestamente más correcta (argumentos ...) desde el paquete net sin suerte.
Puedo ver en el lado del servidor que la conexión al socket ocurre tal como se esperaba pero no hay datos recibidos por el servidor, por lo que sospecho que algo está mal con la forma en que estoy usando el socket función de escritura. Tal vez los primeros caracteres de cuerdas están causando confusión?
Cualquier ayuda sería muy apreciada.
Muchas gracias.
Probé tu código, usando 'nc -l 5555' como mi servidor, y parece funcionar bien bajo el Nodo 0.6.10. –
¡Muchas gracias por intentarlo! El problema es que puedo hacer que funcione (usando el Nodo 0.5.11 -pre though) con nc, o con un servidor node.js que escribí yo mismo ... es solo este servidor en particular (que estaba escrito en Java) que no puedo conectar a. Puedo usar telnet para conectar y enviar mensajes/datos perfectamente bien, pero no cuando uso Socket.write(). Como digo cuando hago una cola en el archivo de registro de los servidores, puedo ver claramente que estoy conectado, pero sea lo que sea lo que intento escribir en el socket tcp (con el código anterior) simplemente no aparece. Gracias por su respuesta, lo aprecio. – RSwan
En ese caso, supongo que no está formateando sus datos correctamente. Es posible que desee intentar enviar saltos de línea, por ejemplo (telnet haría esto). Pruebe 'socket.write ('@!> \ N');'. –