![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему МИДАС-сокеты не могут соединиться? [D7, WinXP]
Aleksandr © (2004-02-13 12:56:00)Две программы - сервер данных и клиент, соединение МИДАС через TSocketConnection. Тест на локальных сетях между XP-98-2000-2003 все прекрасно отработал. Но вот у первого же юзвера-тестера на сетке из 2-х 98-х - полный крах. По UDP-broadcast программы друг друга обнаруживают, TCP-протокол установлен, с одного компа другой пингуется как по адресу, так и по названию, Borland Socket Server запущен, проксей и файрволов не стоит, но связи через TSocketConnection нет, и все! Хоть застрелись, млин. DCOM отпадает, потому что в 98-х его нету. Что может быть причиной? Или, может, для сеток из 98-х просто в принципе он не работает?
Digitman (2004-02-16 13:35:00) [1]убедись для начала любым иным способом, что BSS как просто некий TCP-сервер активен на интересующем хосте/порту
Aleksandr (2004-02-16 13:22:00) [2]"подозреваю, что оно банально связано с гнездовым транспортом..." - и что же мне тут делать? :(
Digitman (2004-02-14 11:33:00) [3]DCOM-технология/механизм не имеет никакого отношения к связке TSocketconnection + BSS
эта связка как раз и придумана для того чтобы не использовать DCOM; в этой связке используется только COM-технология (+ транспорт + собственный маршаллинг)
касаемо исключения ..
подозреваю, что оно банально связано с гнездовым транспортом, а не с MIDASом
фрагмент исх.текста SConnect (D5):
procedure TSocketTransport.SetConnected(Value: Boolean);
begin
if GetConnected = Value then Exit;
if Value then
begin
if (FAddress = '') and (FHost = '') then
raise ESocketConnectionError.CreateRes(@SNoAddress);
FClientSocket := TClientSocket.Create(nil);
FClientSocket.ClientType := ctBlocking;
FSocket := FClientSocket.Socket;
FClientSocket.Port := FPort;
if FAddress <> '' then
FClientSocket.Address := FAddress else
FClientSocket.Host := FHost;
FClientSocket.Open; //скорей всего здась и происходит искл-е
end else
begin
FSocket.Close;
FClientSocket.Free;
if FEvent <> 0 then WSACloseEvent(FEvent);
end;
end;
Aleksandr (2004-02-13 17:27:00) [4]2 Digitman :
Ну, мне казалось, что я точно указал, где: "но связи через TSocketConnection нет". Простите. Разумеется, имелось в виду, что при выполнении строки
SocketConnect.Connected:=true
в true он не устанавливается с сообщением "Невозможно установить соединение".
" скачай и установи его отдельным пакетом" - мысль хорошая, но не каждый юзверь будет этим грузиться.
Digitman (2004-02-13 14:35:00) [5]
> Aleksandr © (13.02.04 12:56)
> Но вот у первого же юзвера-тестера на сетке из 2-х 98-х
> - полный крах
я уже язык до костей стесал одним и тем же контрвопросом - ТОЧНАЯ ДИАГНОСТИКА ОТКАЗА ГДЕ ? что. прямо так и пишет, мол, "полный крах" ?
блинн, детство какое-то играет у наших, с позволения сказать, славных программеров в одном причинном месте(
> DCOM отпадает, потому что в 98-х его нету
скачай и установи его отдельным пакетом, если BSS развернут на машине-сервере паод управлением Маздая
Aleksandr (2004-02-13 14:31:00) [6]Почему? BSS юзает 211 по умолчанию. 211-й и стоит и у клиента в настройках соединения, и у сервера в BSS.
Erik (2004-02-13 14:26:00) [7]Наверное у него высшие порты закрыты. BSS использует после 1024-го порта.
Aleksandr (2004-02-13 13:16:00) [8]Ну, midas.dll я не поставлял туда, но в обе программы включил в проект uses midaslib.
Fay (2004-02-13 13:10:00) [9]м.б. какой длл не хватает?