Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2011.02.13;
Скачать: [xml.tar.bz2];

Вниз

Можно ли при попытке подключения   Найти похожие ветки 

 
FireMan_Alexey ©   (2009-02-11 00:53) [0]

Можно ли при попытке подключения к моему серверу, отключить клиента так, чтобы он получил ошибку сервер перегружен.
Т.е. настроить так, чтобы к моему серверу от клиента было не больше N подключений.
Просто при подключении,после Accept, если просто выполнить CloseSocket, то приходит обыкновенное событие о закрытии соединения. А мне бы хотелось, чтобы клиент получил ошибку, что сервер перегружен :)


 
Сергей М. ©   (2009-02-11 08:18) [1]

В winsock2 - да, можно.


 
Сергей М. ©   (2009-02-11 08:28) [2]

http://citforum.yspu.yar.ru/programming/delphi/sockets-2/


 
FireMan_Alexey ©   (2009-02-11 16:55) [3]

Спасибо! пошел изучать :)


 
FireMan_Alexey ©   (2009-02-12 22:37) [4]

>Сергей М. ©  
Я конечно понимаю, что надо создавать в другую ветку, но может подскажите как можно передать адрес не статической функции, а метода класса?

function WSAAccept(
S:TSocket;
Addr:PSockAddr;
AddrLen:PInteger;
lpfnCondition:TConditionProc;
dwCallbackData:DWORD):TSocket;

type TConditionProc=function(
 lpCallerId,lpCallerData:PWSABuf;
 lpSQOS,lpGQOS:PQOS;
 lpCalleeID,lpCalleeData:PWSABuf;
 g:PGroup;
 dwCallbackData:DWORD):Integer;stdcall;


 
FireMan_Alexey ©   (2009-02-12 22:39) [5]

В смысле в WSAAccept передать :)


 
Сергей М. ©   (2009-02-13 10:18) [6]

А зачем ?

Рег.функция, адрес которой надо передать параметром, предусматривает передачу пользовательских данных - dwCallbackData. Это можно с успехом приспособить для передачи адреса объеста, чей метод будет фактически выполнять проверку кондиций.

function ConditionProc(
 lpCallerId,lpCallerData:PWSABuf;
 lpSQOS,lpGQOS:PQOS;
 lpCalleeID,lpCalleeData:PWSABuf;
 g:PGroup;
 SomeObject:TMyObject):Integer;
begin
  Result := SomeObject.MyConditionFuncMethod(lpCallerId, lpCallerData, lpSQOS, lpGQOS, lpCalleeID, lpCalleeData, g);
end;
..
hSocket := WSAAccept(....., MyObject);


 
Сергей М. ©   (2009-02-13 10:21) [7]

точнее так:

var
 MyObject: TMyObject;
..
hSocket := WSAAccept(....., Cardinal(Pointer(MyObject)));


 
Григорьев Антон ©   (2009-02-13 13:23) [8]


> FireMan_Alexey ©   (11.02.09 16:55) [3]
> Спасибо! пошел изучать :)

Тогда уж изучайте в оригинале: http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1060

Время от времени я нахожу какие-нибудь неточности в своих статьях и правлю их. Правлю, естественно, только в Королевстве. А на всякие сайты типа citforum"а, которые воруют статьи, эти исправления, естественно, не попадают. А ещё были случаи, когда эти копировальщики не могли даже скопировать без ошибок.


 
FireMan_Alexey ©   (2009-02-14 06:12) [9]

>Сергей М. ©
 Еще раз Спасибо :)
>Григорьев Антон ©
 Вам тоже спасибо, буду опираться на оригинал статьи :)



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2011.02.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.003 c
15-1288897823
Новичок
2010-11-04 22:10
2011.02.13
Ищу хорошую книгу по DelphiХ


15-1288982856
polkin
2010-11-05 21:47
2011.02.13
pppoe на windows 2000


15-1288350110
Очень злой
2010-10-29 15:01
2011.02.13
Установка программ через групповую политику active directory


4-1245251049
SpellCaster
2009-06-17 19:04
2011.02.13
Перехват вывода консольного приложения


15-1288781210
Sergey Masloff
2010-11-03 13:46
2011.02.13
А так хорошо начиналось... только за искусство заговорили ;-)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский