Форум: "Сети";
Текущий архив: 2006.12.10;
Скачать: [xml.tar.bz2];
Внизсервер сокетов Найти похожие ветки
← →
alex_dorin (2006-07-13 12:54) [0]Подскажите сервер сокетов, который бы в отличие от борландовского
жестко привязывал
номер порта к GUID
или к ip-адресу отправителя
alex_dorin@rambler.ru
← →
Fay © (2006-07-13 13:19) [1]Чё?!
← →
DVM © (2006-07-13 13:20) [2]
> жестко привязывал
> номер порта к GUID
> или к ip-адресу отправителя
это как?
← →
Альф (2006-07-13 13:59) [3]Исходники scktsrvr.exe лежат Delphi\Source\Vcl...
Никто не мешает...
← →
medved_68 © (2006-07-13 16:51) [4]
> жестко привязывал
> номер порта к GUID
> или к ip-адресу отправителя
Вау, круто.
← →
alex_dorin (2006-07-17 18:02) [5]Алло Гуру !
в какой функции scktsrvr можно сделать проверку принятого от клиента
GUID ?
alex_dorin@rambler.ru
← →
isasa © (2006-07-17 18:09) [6]alex_dorin (17.07.06 18:02) [5]
Стало интересно.
На предмет чего его проверять. Наличия отсутствия, или чего ?
← →
umbra © (2006-07-17 18:33) [7]
> в какой функции scktsrvr можно сделать проверку принятого
> от клиента GUID ?
а что это за GUID такой? если это идентификатор СОМ-интерфейса, то никакого отношения к сокетам он не имеет, и ответ на ваш вопрос - ни в какой. Нет такой функции и в любом другом "сервере сокетов".
← →
Медведъ (2006-07-18 09:41) [8]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;
← →
alex_dorin (2006-07-18 17:09) [9]Этот код ни разу не сработал, так как 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 17:13) [10]бывает
← →
avram © (2006-07-19 12:17) [11]Медведъ кроме тебя никто не знает как проверить GUID но твой вареант работать не будет!
← →
Медведъ (2006-07-19 12:39) [12]у меня работает
← →
avram © (2006-07-19 13:07) [13]Медведъ : "у меня работает" а еще вареантов кода у тебя есть или только этот который работает?
← →
Медведъ (2006-07-19 13:24) [14]это код борланда
возможно у него есть другие варианты, напиши письмо в компанию
← →
avram © (2006-07-19 13:26) [15]Мне интересны больше твои вареанты
← →
Медведъ (2006-07-19 14:16) [16]я рад
готов предоставить тебе консалтинг
200$ в час без налогов
← →
avram © (2006-07-19 14:18) [17]Засунь их себе в ... и сам себе раскажи
← →
Ketmar © (2006-07-19 17:01) [18]снова хамло понабежало. видимо, это неизбежно -- как приливы и отливы в море...
← →
Аноним (2006-07-19 17:42) [19]Медведъ ты вася!!!
← →
Ketmar © (2006-07-19 22:34) [20]кисо ещё и совсем глупое. logout сделало, а мыло оставило...
← →
alex_dorin (2006-07-20 09:51) [21]Господа Гуру !
Подскажите код scktsrvr, что-бы сравнивать, полученный от тонкого клиента с GUID с запомненным scktsrvr GUID.
alex_dorin@rambler.ru
← →
Сергей М. © (2006-07-24 08:45) [22]
> alex_dorin (18.07.06 17:09) [9]
>
> Этот код ни разу не сработал, так как ShowMessage не вывалился
> ни разу!
Вызов ShowMessage() в дополнительном кодовом потоке не допустим.
Для целей отладки используй MessageBox().
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2006.12.10;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.047 c