Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Повторное использование WSAEventSelect / 4 сообщений из 4, страница 1 из 1
09.07.2019, 17:20
    #39835578
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Повторное использование WSAEventSelect
Есть такой код
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
FEvent := WSACreateEvent;
FSocket := INVALID_SOCKET;

procedure CreateSocket;
begin
  FSocket := SockCheck(socket(...));
  SockCheck(connect(FSocket, ....))
  SockCheck(WSAEventSelect(FSocket, FEvent, FD_READ or FD_WRITE or FD_CLOSE));
end;

procedure DestroySocket;
begin
  CloseSocket(FSocket);
  FSocket := INVALID_SOCKET;
end;

procedure DoProcess;
begin
  if FSocket = INVALID_SOCKET then
    CreateSocket;
  ........
end;


Как это работает: приходит команда, я подключаюсь (если еще не был подключен) к удаленному серверу и работаю с ним. Если сервер закрывает соединения, ко мне приходит FD_CLOSE и я закрываю свой сокет. А потом, при необходимости, создаю новый сокет и ассоциирую его с тем же событием FEvent.

Сейчас при повторном вызове я получаю ошибку Code: 10038. Сделана попытка выполнить операцию на объекте, не являющемся сокетом.

Я чего-то не закрываю? Или повторное использование Event запрещено в принципе?

С уважением, Vasilisk
...
Рейтинг: 0 / 0
09.07.2019, 17:37
    #39835597
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Повторное использование WSAEventSelect
Нашел ошибку. Вместе с сокетом закрывался и Event. А Microsoft сэкономили на коде ошибки
...
Рейтинг: 0 / 0
09.07.2019, 18:42
    #39835643
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Повторное использование WSAEventSelect
_Vasilisk_Вместе с сокетом закрывался и Event.

В смысле в твоём коде он закрывался? Потому что автоматически вообще-то не должен по идее.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
09.07.2019, 19:23
    #39835669
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Повторное использование WSAEventSelect
Dimitry SibiryakovВ смысле в твоём коде он закрывался?Да.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Повторное использование WSAEventSelect / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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