先贴代码,网上找的。。。。 现在问题是,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);
再顶一次!
看没人回复,给一点参考意见吧 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 呀什么的。
@rench 谢谢!
看Buffer类吧