Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.06;
Скачать: CL | DM;

Вниз

ClientSocket и клиент microsoft   Найти похожие ветки 

 
Эдик   (2003-11-20 18:18) [0]

Всем привет!
Подскажите пож., неужели компонент ClientSocket не может работать без Клиента сетей Microsoft в сетевом окружении, ато у нас сеть Microsoft под запретом... что делать?
И второе, как проще всего серваку отслеживать отпавших клиентов, onDisconnect далеко не всегда отрабатывает...почему? (последовательный перебор по таймеру не предлагать)
Заранее благодарен.


 
Reindeer Moss Eater ©   (2003-11-20 18:19) [1]

неужели компонент ClientSocket не может работать без Клиента сетей Microsoft
Заблуждение какое


 
Эдик   (2003-11-20 18:50) [2]

Проверено на практике... Ставишь клиента - сообщения отсылаешь, сносишь - нет


 
Fredericco ©   (2003-11-20 18:51) [3]


> (последовательный перебор по таймеру не предлагать)

А трейд?


 
Reindeer Moss Eater ©   (2003-11-20 18:56) [4]

Проверено на практике... Ставишь клиента - сообщения отсылаешь, сносишь - нет

Ну и что?
Если ткнуть карандашом в ухо (в оба уха), то пропадет звук в телевизоре. Какая связь между карандашом и телевизором?

Нужен сетевой протокол, а клиент сетей Майкрософт или еще каких сетей - по барабану.


 
Эдик   (2003-11-20 18:59) [5]

стоит Novell Netware Client и протокол TCP/IP - не работает...


 
Reindeer Moss Eater ©   (2003-11-20 19:01) [6]

"Не работает" и "не может работать в принципе" - это не одно и то же.

и протокол TCP/IP
Чья реализация TCP/IP стоит?


 
Эдик   (2003-11-20 19:07) [7]

какие настройки в сетях должны быть?табу одно - Клиент сетей Microsoft


 
Reindeer Moss Eater ©   (2003-11-20 19:11) [8]

Оставь свою программу в покое и займись диагностикой TCP/IP.
Плясать надо от печки.


 
Эдик   (2003-11-20 19:17) [9]

реализация конечо Microsoft


 
Эдик   (2003-11-21 16:02) [10]

Все работает пока в настройках сети присутствует Клиент сетей Microsoft, только сношу - ServerSocket работа а клиент отказывается, не хочет открыть сокет :-(((. Делфи и винда тут не при чем, пробовал на разных машинах.... с Можете попробовать:
C:\Program Files\Borland\Delphi6\Demos\Internet\Chat\ есть пример от Borland, откомпильте и запустите на выполнение 2 экземпляра программы, сможете обмениваться сообщениями, потом попробуйте удалить клиента Microsoft и вновь запустите.....не можите. Почему и как с этим бороться???
Кстати, Indi клиент и сервер работают без клиента Microsoft аж бегом.


 
Digitman ©   (2003-11-21 16:21) [11]


> не можите. Почему и как с этим бороться???


головой думать, а не сдирать пример и поплевывать в потолок в ожидании что пример будет обязательно работать

примеры даются для другого - для изучения общей логики

есть события On[Client]Error, есть обработка исключений ESocketConnection, ESocketError - все это дает исчерпывающую инф-цию для анализа "глюков" и принятия соотв.решений


 
Эдик   (2003-11-21 17:01) [12]

Господа Товарищи! Да никто не сдирает примеров, пользуюсь я, конечно, событием OnError, возвращает ошибку - 10110
О примере упомянул, только для того, чтоб Вы у себя ситуацию смоделировать смогли...


 
Digitman ©   (2003-11-21 17:21) [13]

WSA_E_NO_MORE = WSABASEERR+110;

как выглядит точный текст сообщения об исключении ?


 
S@shka ©   (2003-11-21 19:32) [14]

Indy работают через WINSOCK 2


 
Эдик   (2003-11-21 19:55) [15]

1. происходит событие OnError, параметр код ошибки - 10110
исключительная ситуация не генерируется, какой текст сообщения?
2. в соседнем форуме обсуждали ClientSocket, утверждали, что он тоже через WINSOCK2 работает...


 
Digitman ©   (2003-11-23 10:28) [16]


> какой текст сообщения?


если ты не обрабатываешь это событие, то при возникновении ошибки ты должен увидеть диал.окно с сообщением об ошибке, включаяя ее код и имя winsock-ф-ции, при выполнении которой ошибка возникла

приведения полного текста этого сообщения я и пытаюсь от тебя добиться)


> обсуждали ClientSocket, утверждали, что он тоже через WINSOCK2
> работает


так и есть.
для NT-платформы - безусловно
для win9x-систем - при условии обновления winsock-подсистемы


 
Эдик   (2003-11-28 20:57) [17]

Разобрался с проблемой, делюсь:

IP адрес присваивался свойству Host а не Adres, в присутствии клиента Microsoft "удавалось" компоненту найти правильный IP по адресу - IP, без него - нет...
Насчет Socket2, вот фрагмент ScktComp:
procedure Startup;
var
ErrorCode: Integer;
begin
ErrorCode := WSAStartup($0101, WSAData);
if ErrorCode <> 0 then
raise ESocketError.CreateResFmt(@sWindowsSocketError,
[SysErrorMessage(ErrorCode), ErrorCode, "WSAStartup"]);
end;
Какой сокет откроется потом? - 1.1. Так вот.
Кстати, текст ошибки - Windows socket error: (10110), on Api (ASync Lookup), ничего не говорит, а кода 110 нет в модуле WinSock. Получается - неизвестная ошибка.
Если я не прав - не пинайте пож. ногами, готов выслушать Ваше мнение


 
Anatoly Podgoretsky ©   (2003-11-28 21:22) [18]

Как не говорит, а это что по твоему? ASync Lookup


 
Digitman ©   (2003-11-29 11:29) [19]


> Кстати, текст ошибки - Windows socket error: (10110), on
> Api (ASync Lookup), ничего не говорит


еще как говорит !
сразу понятно, что отказ связан с преобразованием "имя хоста --> адрес хоста"

а именно - с вызовом ф-ции [WSAAsync]GetHostByName(), что не имеет ничего общего с фрагментом кода, приведенным тобой : "исключение" возбуждается вовсе не здесь, и это вообще не исключение


> Какой сокет откроется потом? - 1.1


до "открытия сокета" дело вообще не доходит, и затребованная версия Winsock именно 1.1 здесь так же ни при чем абсолютно.
отказ ароисходит на этапе вызова вышеупомянутой Lookup-ф-ции еще ДО того как будет вызвана ф-ция [WSA]Socket

поэтому к тебе сразу и был вопрос : приводи ТОЧНЫЙ код сообщения, коль тебе он ни о чем не говорит

теперь - о коде ошибки

WSA_E_NO_MORE = WSABASEERR+110;

этот код был введен в Winsock2, поэтому ни в файле Winsock.pas ни в хэлпе от Борланда он не фигурирует

на самом же деле при WSAStartup($0101, WSAData) инициализируется именно WS2


 
Эдик   (2003-11-29 17:26) [20]

Спасибо за ответы. Небольшие непонятки получились, пример я привел для того, чтоб спросить, какой всетаки сокет открывается... Мне не совсем понятно, почему 1.1 это WS2, хотя в Indi тоже 1.1 стоит, максимальное версия сокета, возвращаемая WSAStartup у меня - 2.
А почему без клиента Microsoft GetHostByName не смогла определить IP по IP, бред конечно так делать... просто спортивный интерес так сказать :-)))


 
Digitman ©   (2003-11-30 12:37) [21]


> какой всетаки сокет открывается


никакой.
WSAStartup не имеет отношения к понятию "открытие сокета"


> почему без клиента Microsoft GetHostByName не смогла определить
> IP по IP,


пиши как положено : св-во Host - для задания ИМЕНИ хоста, св-во Address - для задания АДРЕСА хоста ... но не наоборот ... и будет тебе счастье)


 
Эдик   (2003-12-01 11:20) [22]

Спасибо всем!!!
Поправте меня, если я не прав...
WSAStartup не создвет сокет, но должна вызываться в обязательном порядке перед работой с сокетами, вот строка из хелпа:
The Windows Sockets WSAStartup function initiates use of the Windows Sockets DLL by a process.
В ней параметром задается версия сокета, каку версию задашь, с такой в дальнейшем у будешь работать.


 
Digitman ©   (2003-12-01 11:35) [23]


> WSAStartup не создвет сокет


верно


> В ней параметром задается версия сокета


не "версия сокета", а версия требуемой спецификации подсистемы Winsock


 
Эдик   (2003-12-01 11:53) [24]

А какая принципиальная разница? Вот цитата:
The highest version of Windows Sockets support that the caller can use.
Чтото типа - наибольшая версия Windows Sockets support которую вызывающий сможет исспользовать. Задал 1.0, все, 1.1 уже будет не доступна в твоем приложении. Так?


 
Digitman ©   (2003-12-01 12:37) [25]


> А какая принципиальная разница? Вот цитата:
> The highest version of Windows Sockets support that the
> caller can use.


под "версией Windows Sockets" здесь подразумевается версия спецификации как таковой


> Задал 1.0, все, 1.1 уже будет не доступна в твоем приложении.
> Так?


задав версию 1.0 ты не сможешь воспользоваться в полной мере фунц-тью 1.1


 
Эдик   (2003-12-01 12:44) [26]

Все, умываю руки, вопрос исчерпан, еще раз СПАСИБО!!!


 
Alex Konshin ©   (2003-12-01 15:08) [27]

Winsock 1.x в NT/2K/XP реализуется как враппер для Winsock2. То есть, реально все равно все работает через WS2, но API разный.



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

Текущий архив: 2004.02.06;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.02 c
14-16644
}|{yk
2004-01-13 13:02
2004.02.06
Смотрите, как нужно работать!


14-16714
Daniel
2004-01-18 00:11
2004.02.06
Техническое Задание: содержание, форма...


3-16043
www
2004-01-12 22:04
2004.02.06
Проблемы с выполнением запроса.


11-16201
Nomadic
2003-05-21 14:18
2004.02.06
Нет иконки в заголовке формы под KOL 1.73


14-16676
Thor
2004-01-17 15:24
2004.02.06
восстановить значок.