Node.js读取TCPSocket并写入变量
我的代码snipet有点问题。我为一个项目编写了一个学习TCP套接字通信的示例。目前,我可以发送一个TCP套接字并读取答案,但我想在其他软件部分使用答案。为此,我尝试使用变量socketmessage,但这不起作用。有人知道我的问题的答案吗?非常感谢Node.js读取TCPSocket并写入变量,node.js,sockets,tcp,Node.js,Sockets,Tcp,我的代码snipet有点问题。我为一个项目编写了一个学习TCP套接字通信的示例。目前,我可以发送一个TCP套接字并读取答案,但我想在其他软件部分使用答案。为此,我尝试使用变量socketmessage,但这不起作用。有人知道我的问题的答案吗?非常感谢 var net = require('net'); var client = new net.Socket(); var HOST='127.0.0.1'; var PORT='20000'; var MSG="{\"REQUEST\":\"ST
var net = require('net');
var client = new net.Socket();
var HOST='127.0.0.1';
var PORT='20000';
var MSG="{\"REQUEST\":\"STATUS\"}";
var socketmessage;
socketmessage=getSocketMessage(MSG);
console.log ("Socket Message: " + socketmessage);
function getSocketMessage(tcpmsg){
var outData;
client.connect(PORT, HOST, function() {
console.log("Client: " + tcpmsg);
client.write(tcpmsg);
});
client.setTimeout(5000, function() { client.destroy(); });
client.on('data', function(data) {
console.log('Server: ' + data);
outData = data.toString('utf8');
console.log ("Socketmessage: " + outData);
client.destroy();
});
//Add a 'close' event handler for the client socket
client.on('close', function() {
console.log('Connection closed');
});
// Add a 'error' event handler for the client socket
client.on('error', function(error) {
console.log('Error Connection: ' + error);
});
return outData;
}
终端:
套接字消息:未定义
客户端:{“请求”:“状态”}
服务器:{“STATUS”:0.000000}这是因为函数
getSocketMessage
是异步的。您正在尝试返回收到的消息。函数立即返回,outData
未定义。它的价值是
设置数据何时从服务器到达。网络I/O发生事件,您使用的事件是data
client.on('data', function(data) {
接收到的消息只能在
数据的事件处理程序中正确处理。您必须从这里自己调用另一部分。您可以创建一个读取流,一旦流结束,您可以处理数据
var readStream = fs.createReadStream(path of the file, 'utf8'); //you can use path.join(loc, filename)
var data = '';
readStream.on('data', function(chunk:any) {
data += chunk;
}).on('end', function() {
let gotContent = data.toString(); //
doWhatEver(gotContent) //the method is async or promose
then(function(result){
console.log(result); //desired output
})
});