Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> WSAAccept, Conditional proc 
:(
    Опции темы
qwe113
Дата 31.7.2008, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 7.11.2006

Репутация: нет
Всего: нет



Здраствуйте всем. Функция WinSock 2 WSAAccept - как известно можт реализовывать условное подключение. Это делается вызовом callback фунции... и бля блябля :).

Это конечно все понятно. однако у меня функция обратного вызова даже не вызыввается, т.е. WSAAccept проходит отлично (я использую блокирующий режим сокетов), возвращает сокет нового подключения, однако функция callback Conditional не вызывается.
Вот код:
Код

..............
  Socket := Winsock2.socket(AF_INET, SOCK_STREAM, 0);
  if Socket = INVALID_SOCKET then
    raise Exception.CreateFmt('"socket" function failed. Code: %d',[WSAGetLastError]);

  Address.sin_family := AF_INET;
  Address.sin_port := htons(FPort);
  Address.sin_addr.S_addr := 0;

  if Bind(Socket, @Address, SizeOf(TSockAddr)) = SOCKET_ERROR then
    raise Exception.CreateFmt('"bind" function failed. Code: %d',[WSAGetLastError]);

  Cond := BOOL(1);
  SetSockOpt(Socket, SOL_SOCKET, SO_CONDITIONAL_ACCEPT, @Cond, SizeOf(Cond));

  if winsock2.listen(Socket, SOMAXCONN) = SOCKET_ERROR then
    raise Exception.CreateFmt('"connect" function failed. Code: %d',[WSAGetLastError]);
  FActive := true;

  repeat
    while FConnections <> FMaxConn do
      begin
      Len := SizeOf(Address);
      Sock := WSAAccept(Socket, Address, @Len, @ConnectCond, dword(@Masks));
      if Sock <> INVALID_HANDLE_VALUE then AddConns(Sock, Address);
      Sleep(100);
      end;

  until false;


Ответьте пожалуйста на вопрос.
PM MAIL   Вверх
qwe113
Дата 2.8.2008, 07:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 7.11.2006

Репутация: нет
Всего: нет



Ну что такое? Неужели никто не отпишется???
PM MAIL   Вверх
qwe113
Дата 4.8.2008, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 7.11.2006

Репутация: нет
Всего: нет



Спасибо за молчание smile.
Проблема решилась после такого как начал делать сокет функцией WSASocket.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0388 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.