int defport=StrToInt(Edit1->Text);
IndyServer->DefaultPort=defport;
try
{
IndyServer->Active = true;
}
catch(...)
{
ShowMessage("Ошибка при запуске сервера. Возможно, выбранный Вами порт ("+IntToStr(IndyServer->DefaultPort)+") уже используется.");
}
Выбор порта в TIdTCPServer
запускаю сервак так...
Код:
суть и вопрос в том, что DefaultPort у меня получается установить(поменять) лишь один раз за работу программы...
вылезло (и таким же способом теперь тестирую) так:
- запускаю на 1982 (например) порту рядом сервачок, собранный на TSocketServer;
- запускаю IndyServer на 1983, работает. Останавливаю, вбиваю в Edit1 порт 1982, запускаю. работает(!хотя по идее не должен уже).
- останавливаю IndyServer, перезапускаю exe-шник, вбиваю 1982, запускаю, матерится (только теперь):
"Ошибка при запуске сервера. Возможно, выбранный Вами порт (1982) уже используется"
- останавливаю, вбиваю 1983, запускаю, матерится
"Ошибка при запуске сервера. Возможно, выбранный Вами порт (1983) уже используется"
и т.д.
т.е. cв-во Default Port как бы меняется, но не вступает в силу что ли...
подскажите что не так, что сделать или так и должно быть?
выполни из кмд netstat -a и попробуй поискать там проблему.
Код:
IndyServer->Active = false;
[поправка...]
то прикол в том, что с первого раза бывает не отключается. фишка инди.
пример:
Код:
try { IndyServer->Active = false; } catch (...) {}
if (IndyServer->Active) { ну все совсем плохо... }
if (IndyServer->Active) { ну все совсем плохо... }
т.е. IndyServer->Active все-таки превращается в фальш...
но впредь пытается цепляться по первоначально указанному порту(
перед стартом сервака следовало черкнуть:
Код:
IndyServer->Bindings->Clear();
взял вот отсюда: http://www.delphikingdom.com/asp/answer.asp?IDAnswer=46045