Sockets 在AS3中搜索联机套接字
平台:安卓AIR 我正在尝试开发一种快速搜索算法,用于在我的局域网上搜索在线套接字 第一个算法是在我的网关上创建255个套接字 例如: 192.168.1.1是我的网关 因此,在搜索在线套接字时,我必须创建套接字并将192.168.1.0连接到192.168.1.254。这是快速搜索,但它会导致滞后,因为它消耗了大量的内存。即使在我处理了无法连接的套接字之后。所有联机的套接字都存储在向量数组中 我通过以下方式处理失败的套接字:Sockets 在AS3中搜索联机套接字,sockets,actionscript-3,Sockets,Actionscript 3,平台:安卓AIR 我正在尝试开发一种快速搜索算法,用于在我的局域网上搜索在线套接字 第一个算法是在我的网关上创建255个套接字 例如: 192.168.1.1是我的网关 因此,在搜索在线套接字时,我必须创建套接字并将192.168.1.0连接到192.168.1.254。这是快速搜索,但它会导致滞后,因为它消耗了大量的内存。即使在我处理了无法连接的套接字之后。所有联机的套接字都存储在向量数组中 我通过以下方式处理失败的套接字: 正在从套接字中删除所有侦听器 合上插座 将套接字设置为null 调用
System.gc()
强制垃圾收集var ip = '192.168.1';
var ipCounter = 0;
socket.addEventListener(Event.CONNECT, connectHandler);
socket.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
socket.timeout = 50;
function connectHandler(e:Event):void{
}
function ioErrorHandler(e:IOErrorEvent):void{
ipCounter += 1;
if(ipCounter > 255){
ipCounter = 0;
}
socket.connect(ip+'.'+ipCounter.toString(), 18765);
}
socket.connect(ip+'.'+ipCounter.toString(), 18765);
这是可行的,但是速度很慢
如何改进搜索算法?我终于找到了一个更快的解决方案 我使用了
DatagramSocket
(UPD)来代替搜索
这是因为它不必连接到套接字服务器来发送数据
datagramSocket.send(字节数组、起始、长度、ip、端口)代码>