C与node对于经UDP协议传输的Buffer数据的处理问题
遇到的问题是一台设备经UDP协议向服务器发送buffer类型的数据,本人使用的是nodejs,在对接受的buffer数据进行转string等操作时,无法获取到想要的数据,但是别人给的C的版本可以输出正常数据,但是本人学过的C基本忘完了,所以想请问下,对应的C操作,NODE需要进行什么样的操作(才像是结构体变量),才能获取正常的数据
C语言的操作:
recvfrom(server_socket_fd, buffer, BUFFER_SIZE,0,(struct sockaddr*)&client_addr, &client_addr_length) //实现声明了一个buffer空间,函数接受到通过udp协议发送的数据之后存储到了buffer中
//对接受的数据进行处理
struct cliprobe_data {
unsigned char Apmac[6];
unsigned short int Vendorid;
unsigned short int Reserved1;
unsigned char Bssid[6];
unsigned char Radiotype;
unsigned char Channel;
unsigned char Associated;
unsigned char Messagetype;
char Timestamp[14];
unsigned short int Reserved2;
unsigned char Mutype;
unsigned short int Reserved3;
char Rssi;
unsigned short int Reserved4;
unsigned char Noisefloor;
unsigned short int Reserved5;
unsigned char Datarate;
unsigned char MPDUflags;
unsigned char Mumac[6];
unsigned short int Framecontrol;
unsigned short int Sequencecontrol;
unsigned short int Reserved6;
};
package_data = (struct cliprobe_data *) buffer;//相当于格式化了buffer?
Node的话,
serverSocket.on('message', function(msg, rinfo){
console.log(msg)//buffer 类型
console.log(msg.toString())//乱码
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
nodejs中将buffer转字符串的语法:
buffer.toString([encoding], [start], [end])
encoding默认是utf-8,是不是需要指定encoding。