2013-02-23 2 views
0

У меня есть программа, которая использует TIdHTTPServer. Теперь я хочу написать несколько автоматических тестов, используя TIdHTTP, который говорит с TIdHTTPServer. Код теста находится в самой программе.Может ли TIdHTTPServer и TIdHTTP в одном и том же исполняемом соединении?

Когда TIdHTTP пытается подключить «Ошибка сокета # 10061 Connection отказано». исключение. Я предполагаю, что это тот факт, что TIdHTTPServer уже использует порт.

Возможно ли, что TIdHTTPServer и TIdHTTP, которые находятся в одном и том же исполняемом файле, разговаривают друг с другом вообще? Если да, то как?

+0

Вы можете иметь сервер TCP и клиент в одном приложении. Возможно, ваше решение для брандмауэра блокирует ваш сервер? –

+0

Спасибо iMan. Похоже, моему приложению разрешили пройти через брандмауэр уже. – Giel

ответ

5

Да, они могут работать в одном исполняемом файле и подключаться друг к другу. Просто укажите (один из) прослушивания IP TIdHTTPServer (-и) в URL, который вы передаете в TIdHTTP, например:

with IdHTTPServer1.Binding.Add do 
begin 
    IP := '127.0.0.1'; 
    Port := 80; 
end; 
IdHTTPServer1.Active := True; 
... 
IdHTTP1.Get('http://127.0.0.1/'); 
+0

А, это действительно работает. Но мой настоящий код этого не делает. Я собираюсь изучить это! – Giel

+0

О, дорогой, мой TIdHTTPServer не работал ... Giel

Смежные вопросы