使用TCPsocket连接方式,对一个IP进行发送消息并拿到此IP接受到消息之后的返回数据,为了完成手机通过连接设备热点的形式通过TCPsocket给此设备传递一个可连接WiFi信息,此设备接受通过TCP连接接受到数据后,就会返回数据发送给之前那个TCPsocket的ip,此时手机就会接受到socket发送过来的信息。
遇到问题:
1.设备接受的数据只能为二进制形式的数据,而send方法传递数据的数据格式string | ArrayBuffer,将二进制转换成string | ArrayBuffer格式传递时,
string类型时,on方法返回的数据为:
messageView: “›\u0006ÀN0àˈ”
value:{“message”:{},“remoteInfo”:{“address”:“192.168.5.1”,“family”:“IPv4”,“port”:5003,“size”:8}};
而ArrayBuffer类型,我是通过方法转换而来,方法如下:
strToArrayBuffer(str: string) {
let buf = new ArrayBuffer(str.length * 2);
let bufView = new Uint16Array(buf);
for (let i = 0, strLen = str.length; i < strLen; i++) {
bufView[i] = str.charCodeAt(i);
}
return bufView;
}
但on方法返回提示信息为参数错误。
str转ArrayBuffer 用如下方式试下