Node.js中利用net模块,接收纯c编写的socket链接,接收内容问题
发布于 12 年前 作者 talentfs 8949 次浏览 最后一次编辑是 8 年前

先贴代码,网上找的。。。。 现在问题是,client端是用纯c编写的socket,发送的数据是放在一个buf里的,我在接收的时候如何转换啊,就是data的内容,感觉现在是默认为字符串了吧。 var net = require(‘net’); var HOST = ‘127.0.0.1’; var PORT = 4545; net.createServer(function(sock) {

// 我们获得一个连接 - 该连接自动关联一个socket对象
console.log('CONNECTED: ' +
    sock.remoteAddress + ':' + sock.remotePort);

// 为这个socket实例添加一个"data"事件处理函数
sock.on('data', function(data) {
    console.log('DATA ' + sock.remoteAddress + ': ' + data);
});

// 为这个socket实例添加一个"close"事件处理函数
sock.on('close', function(data) {
    console.log('CLOSED: ' +
        sock.remoteAddress + ' ' + sock.remotePort);
});

}).listen(PORT, HOST);

console.log('Server listening on ’ + HOST + ‘:’ + PORT);

7 回复

再顶一次!

看没人回复,给一点参考意见吧 data是一个buffer,好像需要指定编码 data.toString(‘ascii’) 或者socket.setEncoding(),另外你没说你c中的buf是什么…

那个function(data) data 就是一个buffer

发送端那边就发了几个数字,有int的,有float的,原来是用c#的socket,直接用BitConverter.ToInt32之类的,根据不同类型的字节数转的- -,如果发送端和接收端都是node.js运行,我发送的东西都能正常接收,内容正确,是不是这个有默认的编码的啊,lz刚上手啊,小白一个,谢谢指点啊。

@talentfs 看Buffer类撒。什么readInt8 呀什么的。

看Buffer类吧

回到顶部