Idtcpclient и Idtcpserver

  • Автор темы Antoha
  • Дата начала
A

Antoha

#1
Я пишу чат в котором использую TCPServer и TCPClient. Проблема в том, что во время роботы программы порты клиента и сервера можно поменять только один раз, т.е. в первый раз установил порты - все работает нормально, во второй раз - ошибка "Connect time out".
Код:
{Так я начинаю соединение}
IdTCPServer1.DefaultPort:=<>;
IdTCPClient1.Host:=<>;
IdTCPClient1.Port:=<>;
IdTCPServer1.Active:=true;
IdTCPClient1.Connect(50);

{Так заканчиваю}
IdTCPServer1.Active:=false;
IdTCPClient1.Disconnect;
Может я что-то делаю не так как надо? Помогите, пож...
 
A

Antoha

#2
У IdTCPServer-а есть такой параметр как Bindings. Может быть мне как-нибудь использовать его? Подскажите пож... что такое Bindings и с чем его едят
 
C

Coldfate

#3
У меня была схожая проблемка, и , к счастью, чат я все-таки написал, сначала через Indy, а потом и через WinSock. По-моему, сначала нужно отконнектить клиент, а потом сделать сервер неактивным. Дело в том, что Инди писали, видимо, с большого похмелья, и ошибок там как в сортире мух. Может, дело в этом. Bindings используют, если нужно сервер поставить сразу на несколько портов или адресов. Производительность, кстати, камнем падает.

Тут на форуме уже задавали вопрос, я напишу то же, что и тогда. Используйте WinSock. Да, он несколько тяжеловат для совсем начинающих, но на сайте Королевства Дельфи есть отличная статья по этому поводу, где чуть ли не на пальцах объясняется, как что работает. ВинСок НАМНОГО быстрее Инди по скорости, да и, если честно, понятнее. И там, в отличие от Инди, нет ошибок. Для меня это удобней. Для примера: мой чат на Инди (исходники) занимал почти в 2 раза больше чем на ВинСокеи глюков было немеряно.