Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / ScktComp. Error 10049. Состояние сокета / 3 сообщений из 3, страница 1 из 1
16.10.2019, 13:35
    #39877041
OxY63rus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ScktComp. Error 10049. Состояние сокета
Привет.
На форму кидаю TClientSocket, TServerClient и три кнопки:
1. Запускает сервер
2. Подключает к серверу с заведомо несуществующим именем
3. Подключает к серверу с заведомо существующим именем (как по IP так и по hostname)

При подключении к серверу с заведомо несуществующим именем вылетает исключение 11001 (Этот хост неизвестен).

Теперь если подключаться к серверу с заведомо существующим именем вылетает исключение 10049 (Требуемый адрес для своего контекста неверен). В этот момент
Код: pascal
1.
2.
ClientSocket1.Socket.SocketHandle = -1
ClientSocket1.Socket.LookupState = lsLookupAddress


Если сейчас опять подключаться к серверу с заведомо существующим именем, то подключение устанавливается и
Код: pascal
1.
2.
ClientSocket1.Socket.SocketHandle <> -1
ClientSocket1.Socket.LookupState = lsIdle



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

Код:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
procedure TForm1.StartServerClick(Sender: TObject);
begin
  ServerSocket1.Port:=8888;
  ServerSocket1.Active:=true;
end;


procedure TForm1.CoonectToNonExistingClick(Sender: TObject);
begin
  ClientSocket1.Host:='notexisting';
  ClientSocket1.Port:=8888;
  ClientSocket1.Active:=true;
end;

procedure TForm1.ConectToExistsClick(Sender: TObject);
begin
  ClientSocket1.Host:='localhost';
  ClientSocket1.Port:=8888;
  ClientSocket1.Active:=true;
end;

procedure TForm1.ClientSocket1Error(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
begin
  ShowMessage(inttostr(ErrorCode));
  ErrorCode:=0;
end;

procedure TForm1.ClientSocket1Connect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  Showmessage('Connected');
end;
...
Рейтинг: 0 / 0
16.10.2019, 19:20
    #39877269
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ScktComp. Error 10049. Состояние сокета
OxY63rus,

Помнится там кроме свойства Host есть свойство Address - оно после первого подключения не заполняется, случайно?
И что будет если ему перед подключением принудительно присваивать '' (пустую строку)?
...
Рейтинг: 0 / 0
16.10.2019, 19:53
    #39877277
OxY63rus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ScktComp. Error 10049. Состояние сокета
alekcvp, Address не заполняется. При всех ошибках
Код: pascal
1.
length(ClientSocket1.Address) = 0
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / ScktComp. Error 10049. Состояние сокета / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]