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

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.025 c
1-16255
lkl
2004-01-24 13:22
2004.02.06
Как отобразить копирование файлв с помошью Animate и ProgresBar


1-16256
denis24
2004-01-26 12:18
2004.02.06
checklistbox.drawitem


6-16544
V.exeR
2003-12-02 06:57
2004.02.06
И еще... Как узнать размер и время создания файла


1-16224
Overstep
2004-01-26 17:37
2004.02.06
Ошибка в проэкте


1-16257
Urri
2004-01-26 12:54
2004.02.06
Загрузить иконку формы из ресурса





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский