Хорошо.Гибкие розетки и петля
В моей сети у меня есть пара компьютеров, на которых запущен заказный сервер, который вернет имя пользователя зарегистрированного пользователя при запросе.
У меня есть следующий код.
private function LoopAndList():void
{
var loopSocket:Socket;
var fourthOctet:Number = 6;
var stubIP:String = "192.168.0.";
var loophost:String;
loopSocket = new Socket();
loopSocket.addEventListener(ProgressEvent.SOCKET_DATA, socketDataHandler);
loopSocket.addEventListener(Event.CONNECT, connectHandler);
loopSocket.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
loopSocket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
textarea1.text = "";
while (fourthOctet != 0)
{
loophost = stubIP + fourthOctet;
textarea1.text = textarea1.text + loophost + "\n";
textarea1.text = textarea1.text + "Connecting to: " + loophost + "\n";
try
{
loopSocket.connect("192.168.0.4", 19001);
fourthOctet--;
}
catch(ioError:IOError)
{
textarea1.text = textarea1.text + "Sec error \n ";
fourthOctet--;
}
catch(secError:SecurityError)
{
textarea1.text = textarea1.text + "io error \n";
fourthOctet--;
}
Теперь, когда это работает, это не сработает, как я впервые подумал. Итерации идут, хотя. значение четвертого октета уменьшается. Но что-то странное случается. В приведенном выше коде вы заметите, что у меня есть жесткий адрес IP-адреса в цикле. Я поставил это там, чтобы убедиться, что всегда существует действующее соединение. Знаю, что он всегда будет подключаться к 192.168.0.4.
Но соединение происходит только при последнем соединении.
выводе является:
192.168.0.6
Connecting to 192.168.0.6
192.168.0.5
Connecting to 192.168.0.5
...
192.168.0.1
Connecting to 192.168.0.1
Sending Data
IN REad function
data received
username/192.168.0.1
Где бы ожидать, что все подключить и работать с удовольствием. Есть ли у кого-нибудь идеи о том, где это происходит?
спасибо. Я понимаю асинхронный бит. Функция «IN READ» полученных данных имя пользователя/192.168.0.1 «бит выполняется с помощью обработчика соединения.Я ожидал, что каждая итерация цикла запустит вызов и произведет один и тот же текст, поэтому для 6 итераций, как это делается выше, я ожидаю увидеть выше 6 раз не 1. Как показано в коде, у меня есть жестко закодированный IP, а сервер всегда работает на этом, и поэтому это должно удалить любые ошибки ввода-вывода из-за того, что он не является допустимым IP-адресом и т. д. Этот сервер немедленно возвращается, когда я запускаю другие части кода. – user1148158