![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
сервер сокетов [D7]
alex_dorin © (2006-07-13 12:54:00)Подскажите сервер сокетов, который бы в отличие от борландовского
жестко привязывал
номер порта к GUID
или к ip-адресу отправителя
alex_dorin@rambler.ru
Сергей М. (2006-07-24 08:45:00) [1]
> alex_dorin (18.07.06 17:09) [9]
>
> Этот код ни разу не сработал, так как ShowMessage не вывалился
> ни разу!
Вызов ShowMessage() в дополнительном кодовом потоке не допустим.
Для целей отладки используй MessageBox().
alex_dorin (2006-07-20 09:51:00) [2]Господа Гуру !
Подскажите код scktsrvr, что-бы сравнивать, полученный от тонкого клиента с GUID с запомненным scktsrvr GUID.
alex_dorin@rambler.ru
Ketmar (2006-07-19 22:34:00) [3]кисо ещё и совсем глупое. logout сделало, а мыло оставило...
Аноним (2006-07-19 17:42:00) [4]Медведъ ты вася!!!
Ketmar (2006-07-19 17:01:00) [5]снова хамло понабежало. видимо, это неизбежно -- как приливы и отливы в море...
avram (2006-07-19 14:18:00) [6]Засунь их себе в ... и сам себе раскажи
Медведъ (2006-07-19 14:16:00) [7]я рад
готов предоставить тебе консалтинг
200$ в час без налогов
avram (2006-07-19 13:26:00) [8]Мне интересны больше твои вареанты
Медведъ (2006-07-19 13:24:00) [9]это код борланда
возможно у него есть другие варианты, напиши письмо в компанию
avram (2006-07-19 13:07:00) [10]Медведъ : "у меня работает" а еще вареантов кода у тебя есть или только этот который работает?
Медведъ (2006-07-19 12:39:00) [11]у меня работает
avram (2006-07-19 12:17:00) [12]Медведъ кроме тебя никто не знает как проверить GUID но твой вареант работать не будет!
Медведъ (2006-07-18 17:13:00) [13]бывает
alex_dorin (2006-07-18 17:09:00) [14]Этот код ни разу не сработал, так как ShowMessage не вывалился ни разу!
SConnect.pas
procedure TDataBlockInterpreter.InterpretData(const Data: IDataBlock);
var
Action: Integer;
begin
Action := Data.Signature;
if (Action and asMask) = asError then DoException(Data);
try
case (Action and asMask) of
asInvoke: DoInvoke(Data);
asGetID: DoGetIDsOfNames(Data);
asCreateObject: DoCreateObject(Data);
....
procedure TDataBlockInterpreter.DoCreateObject(const Data: IDataBlock);
var
V: OleVariant;
VarFlags: TVarFlags;
I: Integer;
begin
V := CreateObject(ReadVariant(VarFlags, Data));
function TDataBlockInterpreter.CreateObject(const Name: string): OleVariant;
var
ClassID: TGUID;
begin
if (Name[1] = '{') and (Name[Length(Name)] = '}') then
ClassID := StringToGUID(Name) else
ClassID := ProgIDToClassID(Name);
if CanCreateObject(ClassID) then
Result := InternalCreateObject(ClassID) else
raise Exception.CreateResFmt(@SObjectNotAvailable, [GuidToString(ClassID)]);
end;
Медведъ (2006-07-18 09:41:00) [15]SConnect.pas
procedure TDataBlockInterpreter.InterpretData(const Data: IDataBlock);
var
Action: Integer;
begin
Action := Data.Signature;
if (Action and asMask) = asError then DoException(Data);
try
case (Action and asMask) of
asInvoke: DoInvoke(Data);
asGetID: DoGetIDsOfNames(Data);
asCreateObject: DoCreateObject(Data);
....
procedure TDataBlockInterpreter.DoCreateObject(const Data: IDataBlock);
var
V: OleVariant;
VarFlags: TVarFlags;
I: Integer;
begin
V := CreateObject(ReadVariant(VarFlags, Data));
function TDataBlockInterpreter.CreateObject(const Name: string): OleVariant;
var
ClassID: TGUID;
begin
if (Name[1] = '{') and (Name[Length(Name)] = '}') then
ClassID := StringToGUID(Name) else
ClassID := ProgIDToClassID(Name);
if CanCreateObject(ClassID) then
Result := InternalCreateObject(ClassID) else
raise Exception.CreateResFmt(@SObjectNotAvailable, [GuidToString(ClassID)]);
end;
umbra (2006-07-17 18:33:00) [16]
> в какой функции scktsrvr можно сделать проверку принятого
> от клиента GUID ?
а что это за GUID такой? если это идентификатор СОМ-интерфейса, то никакого отношения к сокетам он не имеет, и ответ на ваш вопрос - ни в какой. Нет такой функции и в любом другом "сервере сокетов".
isasa (2006-07-17 18:09:00) [17]alex_dorin (17.07.06 18:02) [5]
Стало интересно.
На предмет чего его проверять. Наличия отсутствия, или чего ?
alex_dorin (2006-07-17 18:02:00) [18]Алло Гуру !
в какой функции scktsrvr можно сделать проверку принятого от клиента
GUID ?
alex_dorin@rambler.ru
medved_68 (2006-07-13 16:51:00) [19]
> жестко привязывал
> номер порта к GUID
> или к ip-адресу отправителя
Вау, круто.
Альф (2006-07-13 13:59:00) [20]Исходники scktsrvr.exe лежат Delphi\Source\Vcl...
Никто не мешает...