Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ошибки "Software caused connection abort" и "Connection refused"


DelphiN! ©   (2007-05-04 11:43:00) 

Если перезагрузить ресетом компьютер, на котором расположено клиентское приложение, соединенное с серверным через TCP(компоненты TSimpleTCPClient и TSimpleTCPServer) то на сервере возникает ошибка "Software caused connection abort", далее после перезагрузки компьютера клиента если попытаться снова подключиться к серверу клиент выдает сообщение "Connection refused" до тех пор, пока не перезапустишь сервер ...
 Что делать, чтобы подключиться к серверу без его перезапуска?


umbra   (2007-05-04 13:29:00) [1]


> TSimpleTCPServer

а что это за компонент вообще?


DelphiN!   (2007-05-04 13:14:00) [2]

Закрываю так :

procedure TCPServerError(Sender: TObject; Socket, ErrorCode: Integer;
 ErrorMsg: String);
begin
 case ErrorCode of
   WSAECONNABORTED:
     CloseSocket(Socket);
 end;
...
end;

Однако это проблеммы не решает. Более того заметил, что соединение не удается установить не только с того клиента, компьютер которого был перезагружен но и с иного компьютера! Попробовал после перезагрузки клиента соедениться через Телнет с компьютером на котором стоит серверное приложение, но в соединении было отказано. Причем если присоедениться к серверному приложению через Телнет до обрыва соединения с клиентским компьютером, то Телнет с сервером соединяется успешно и связи с ним не теряет даже после того как клиент будет перезагружен.... Однако после перезагрузки клиента никто более подключиться не может ...

Получается что сервер перестает вообще принимать запросы на новое соединение, однако с уже имеющимися клиентами обменивается данными успешно!
Также заметил что после перезагрузки клиента компонент TSimpleTCPServer успешно удаляет клиента из списка текущих соединений с клиентами!

В чем же может быть данная проблемма?


umbra   (2007-05-04 12:07:00) [3]

а зачем его вручную закрывать? закрыайте при возникновении ошибки на сервере


DelphiN!   (2007-05-04 12:03:00) [4]

> umbra ©   (04.05.07 11:56) [1]

А как закрыть соединение вручную, зная номер сокета?


umbra   (2007-05-04 11:56:00) [5]


> на сервере возникает ошибка "Software caused connection
> abort"

по идее после этого сервер должен закрыть соединение. Но, судя по


> если попытаться снова подключиться к серверу клиент выдает
> сообщение "Connection refused" до тех пор, пока не перезапустишь
> сервер ...

этого не делает и не разрешает одному клиенту подключаться более одного раза.


Наверх

Титульная страница Поиск, карта сайта Написать письмо