我正在使用 chrome 网络 API 打开一个 UDP 套接字,该套接字应该既监听又发送数据(服务器和客户端)。这就是为什么我使用带有bind
/ sendTo
/的服务器方式recvFrom
。
但是,我无法将数据发送到本地主机以外的其他主机:请参见下面的示例。代码错误-109
对应于ADDRESS_UNREACHABLE
。
chrome.socket.create('udp', function(socketInfo) {
var socketId = socketInfo.socketId;
chrome.socket.bind(socketId, '127.0.0.1', 3008, function(s) {
chrome.socket.getInfo(socketId, function(info) {
console.log(info);
// {connected: false, localAddress: "127.0.0.1", localPort: 3008, socketType: "udp"}
});
var arr = new Uint8Array(1);
arr[0] = 123;
var ab = arr.buffer;
chrome.socket.sendTo(socketId, ab, "127.0.0.1", 3007, function(sendResult) {
console.log("sendTo", sendResult);
//sendTo {bytesWritten: 1}
});
chrome.socket.sendTo(socketId, ab, "google.com", 3007, function(sendResult) {
console.log("sendTo", sendResult);
//sendTo {bytesWritten: -109}
});
});
});
我的权限限制较少:udp-send-to
和udp-bind
.
使用connect
/write
方式有效,但这不是我想要实现的,因为我试图同时打开一个套接字而不是服务器和客户端。
任何的想法 ?