Javascript Chrome UDP套接字服务器发送到本地主机以外的其他主机返回-109错误代码
我正在使用chrome网络API打开一个UDP套接字,该套接字应该同时侦听和发送数据(服务器和客户端)。这就是为什么我使用服务器方式绑定Javascript Chrome UDP套接字服务器发送到本地主机以外的其他主机返回-109错误代码,javascript,sockets,google-chrome-extension,google-chrome-app,Javascript,Sockets,Google Chrome Extension,Google Chrome App,我正在使用chrome网络API打开一个UDP套接字,该套接字应该同时侦听和发送数据(服务器和客户端)。这就是为什么我使用服务器方式绑定bind/sendTo/recvFrom 但是,我无法将数据发送到本地主机以外的其他主机:请参见下面的示例。代码错误-109到地址\u不可访问 chrome.socket.create('udp', function(socketInfo) { var socketId = socketInfo.socketId; chrome.socket.bin
bind
/sendTo
/recvFrom
但是,我无法将数据发送到本地主机以外的其他主机:请参见下面的示例。代码错误-109
到地址\u不可访问
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发送到
和udp绑定
使用连接
/写入
的方法是可行的,但这不是我想要实现的,因为我试图同时打开一个套接字,而不是服务器和客户端
有什么想法吗?如果将套接字绑定到127.0.0.1,它只能发送和接收到本地主机。所以不要那样做。使用默认值。我可以通过将套接字绑定到
0.0.0
而不是127.0.0.1
上来运行它
chrome.socket.bind(socketId, '0.0.0.0', 3008, function(s) {
//.. and so on
});
这也许就是@EJP在本文中的意思。我通过浏览找到了解决方案 如果
bytesWrite
为负数,则为错误代码。你调查过-109
是什么意思吗?哦,是的,我在问题中加了一行。ThxAre正在尝试连接到“google.com”上的3007端口?似乎没有这样的端口开放。没有人尝试连接到google.com:3007。因为它是UDP,所以不存在“连接”,您也不关心端口是否打开。仅供参考,127.0.0.1:3007上没有任何内容,而且仍然!为什么它只能发送到本地主机?说明在哪里?“使用默认值是什么意思?@alexstrat,因为这就是绑定到localhost的意思。”。这就是localhost的含义。它是一个仅在本地主机内工作的IP地址。它在外面看不见。不可能。这正是我的意思,也是我说的。默认值为0.0.0.0。