账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    如何用node.js实现向tcp服务器间隔一段时间发送数据?
    20
    0

    创建的tcp服务器,tcpserver:

    var net = require('net')
    var mysql = require('mysql');
    var conn = mysql.createConnection({
        host:'localhost',
        user:'root',
        password:'',
        database:'gprs',
        port:3306
    });
    conn.connect();
    net.createServer(function(socket){
        socket.on('data',function(data){
            console.log('got:',data.toString());
            var text = JSON.parse(data.toString());
            var arr = {};
            arr.tem = text.tem;
            arr.hum = text.hum;
            arr.illsum = text.illsum;
    
            console.log(arr);
            console.log(arr.tem);
            console.log(arr.hum);
            console.log(arr.illsum);
            //将温湿度数据存入mysql
            conn.query('INSERT INTO gprsdata SET ?', arr, function(error,result,fields){
                if (error) throw error;
            });
        });
        socket.on(
            'end',function(data){
            console.log('end');
        });
        socket.write('Ready to receive your message!')
    }).listen(4001);

    创建的tcpclient.js:

    const net = require('net');
    const client = net.connect({port:4001},()=> {
        console.log("connected to server!");
    client.write("{\"tem\":\"20\",\"hum\":\"30\",\"illsum\":\"473\"}");
    });
    client.on('data',(data) => {
        console.log(data.toString());
    client.end();
    });
    client.on('end',() => {
        console.log('disconnected from server');
    });
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 情殤念斷 普通会员 1楼

      在Node.js中,我们可以使用async/await语法来实现向TCP服务器间隔一段时间发送数据。以下是一个简单的示例:

      ```javascript const http = require('http'); const fs = require('fs');

      const server = http.createServer((req, res) => { fs.createReadStream('path/to/your/data.txt') .on('data', (chunk) => { res.write(chunk); }) .on('end', () => { res.end('Data sent successfully'); }); });

      server.listen(3000, () => { console.log('Server is listening on port 3000'); }); ```

      在这个示例中,我们创建了一个HTTP服务器,它监听3000端口。当有数据到达服务器时,我们会读取数据并将其写入服务器。当数据读取完毕时,我们会发送一个成功消息。

      注意,你需要将'path/to/your/data.txt'替换为你的数据文件的实际路径。你也需要确保数据文件在服务器可以访问的地方。

      此外,这个示例使用了fs.createReadStream()方法来读取数据文件,这将阻塞当前任务,直到数据读取完毕。如果你想在数据读取完毕后立即发送数据,你可以使用fs.write()方法来写入数据。

      此外,这个示例没有处理任何错误。在实际使用中,你可能需要添加错误处理代码,以处理服务器关闭或数据读取错误等问题。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部