Здравствуйте, Allock, Вы писали:
A>Как узнать, установлен ли TCP/IP на машине? A>Всегда ли это связано с наличием сетиевой карточки?
A>С уважением. A>Аллок.
Чесно говоря не разу не интересовался таким вопросом, но думаю самое простое, что приходит в голову, можно проверить наличием установленой библиотеки winsock и если есть запрсить адрес localhost
Для работы с IB используется TCP/IP.
Позвонил клиент и сказал, я скачал демку — а она не идет. Выяснилось, что у него дома не самый "модный" компьютер, без сетевой карты, без сетевого окружения и без TCP/IP...
Короче, надо отлавливать такую ситуацию, кагда нет TCP/IP.
Я не знаю: если нет сетевухи, означает ли это, что нет протокола???
Не факт, ведь есть блютус и прочие причандалы, которые могут пользовать TCP/IP...
Здравствуйте, Allock, Вы писали:
A>Для работы с IB используется TCP/IP. A>Позвонил клиент и сказал, я скачал демку — а она не идет. Выяснилось, что у него дома не самый "модный" компьютер, без сетевой карты, без сетевого окружения и без TCP/IP...
A>Короче, надо отлавливать такую ситуацию, кагда нет TCP/IP. A>Я не знаю: если нет сетевухи, означает ли это, что нет протокола??? A>Не факт, ведь есть блютус и прочие причандалы, которые могут пользовать TCP/IP...
Как только ты устанавливаешь блютус, то как ни крути появляется сетевое устройство и устанавливается сеть.
При установке винды (не помню правда на 95) на 98 не самой модной, всегда по-умолчанию устанавливается "контроллер удаленного доступа", который и обеспечивает минимальную сетевуху (типа нуль-модемное прямое соединени или модемное).
Но это не означат, что в сети есть TCP/IP.
У IB помимо сетевых протоколов есть и локальный протокол, и он превосходно работает.
а насчет совместимости я обычно к программе прикладываю файл с описанием что нужно иметь чтобы не плясать с бубном. И клиент перед этип проверяет эту совместимость, хотябы даже sysinfo из офиса.Ну а если клиент не читает такие рекомендации, то есть правило закона Мерфи: "Если делать программу, которой сможет воспользоваться любой дурак, ю будут пользоваться одни дураки".
Здравствуйте, Allock, Вы писали:
A>Для работы с IB используется TCP/IP. A>Выяснилось, что у него дома не самый "модный" компьютер, без сетевой карты, без сетевого окружения и без TCP/IP...
"Модные" имеют привычку иметь сетевуху и "отключать" её, если кабель не подключен. В 95/98 стек активировался, если ставишь драйвер к сетевухе или делаешь dial-up подключение, в 2k/xp он активируется при установке, но "модники" "вырубают" устройство, если нет кабеля, в то время как не модники говорят, что устройство есть.
По моему, проще проконтролировать версию Windows и делать выводы исходя из того, что на 9x стек м.б. придётся ставить вручную, а значит нужен установочный диск и etc.
A>Я не знаю: если нет сетевухи, означает ли это, что нет протокола???
Нет, ещё бывает диал-ап и см. выше.
A>Не факт, ведь есть блютус и прочие причандалы, которые могут пользовать TCP/IP...
Эти тоже любят TCP, но также любят дизактивироваться...
Согласен, но сразу вопросы:
S>У IB помимо сетевых протоколов есть и локальный протокол, и он превосходно работает.
Я делал собственно инсталлятор. Конкретную реализацию работы программы с IB я полностью не представляю. Я ставлю эмбедед FB. В тех же алиасах BDE ставлю локальный путь типа С:\Program...\...\db\db.gdb. И почему возникают проблемы — пока не знаю.
И кстати, что за локальный протокол?
S>а насчет совместимости я обычно к программе прикладываю файл с описанием что нужно иметь чтобы не плясать с бубном. И клиент перед этип проверяет эту совместимость, хотябы даже sysinfo из офиса.Ну а если клиент не читает такие рекомендации, то есть правило закона Мерфи: "Если делать программу, которой сможет воспользоваться любой дурак, ю будут пользоваться одни дураки".
Хорошая мысль, только не применимая зачастую на практике. Вот и в данном случае, задано отлавливать отсутствие TCP и выдавать окно с диагностикой на этапе инсталляции.
Вот я и подумал, что если пингануть 127.0.0.1, то это может ответить есть TCP или нет...
Здравствуйте, akasoft, Вы писали:
A>Здравствуйте, Allock, Вы писали:
A>>Для работы с IB используется TCP/IP. A>>Выяснилось, что у него дома не самый "модный" компьютер, без сетевой карты, без сетевого окружения и без TCP/IP...
A>"Модные" имеют привычку иметь сетевуху и "отключать" её, если кабель не подключен. В 95/98 стек активировался, если ставишь драйвер к сетевухе или делаешь dial-up подключение, в 2k/xp он активируется при установке, но "модники" "вырубают" устройство, если нет кабеля, в то время как не модники говорят, что устройство есть.
Вот это никак не отловить. Тут медицина безсильна. Но если ты и отключишь оборудование, то интерфейс локального хоста будет работать полюбому.
A>По моему, проще проконтролировать версию Windows и делать выводы исходя из того, что на 9x стек м.б. придётся ставить вручную, а значит нужен установочный диск и etc.
A>>Я не знаю: если нет сетевухи, означает ли это, что нет протокола???
Читай выше. нет.
A>Нет, ещё бывает диал-ап и см. выше.
все это опять же рассматривается как сеть. даже нуль-модемное соединение (если оно делается виндой, а не нортон-командером)
A>>Не факт, ведь есть блютус и прочие причандалы, которые могут пользовать TCP/IP...
A>Эти тоже любят TCP, но также любят дизактивироваться...
Но наличие сети не означает присутсвие TCP. Сеть можно построить в винде и на двух других протоколах (ipx и netbeue), не считая экзотики типа лантастика иля баяна.
Здравствуйте, svd71, Вы писали:
S>положи TServerSocket и TClientSocket и настрой на один порт и на адрес 127.0.0.1 S>если открытие TClientSocket ненормальное, то значит проблемы с TCP
По моему, обычного WSAStartup/gethostname должно хватить
var
wsa: WSADATA;
S: String;
...
begin
try
...
FillChar(wsa, SizeOf(wsa), 0);
WSAStartup($101, wsa);
SetLength(S, 255);
if gethostname(PChar(S), Length(S)) = SOCKET_ERROR then
raise EAbort.Create('gethostname');
...
finally
WSACleanup;
end;
Hello, Allock!
You wrote on Fri, 08 Oct 2004 12:52:51 GMT:
A> Для работы с IB используется TCP/IP. A> Позвонил клиент и сказал, я скачал демку — а она не идет. Выяснилось, A> что у него дома не самый "модный" компьютер, без сетевой карты, без A> сетевого окружения и без TCP/IP...
В общем, обычный домашний компьютер без выхода в интернет.
A> Короче, надо отлавливать такую ситуацию, кагда нет TCP/IP. A> Я не знаю: если нет сетевухи, означает ли это, что нет протокола??? A> Не факт, ведь есть блютус и прочие причандалы, которые могут пользовать A> TCP/IP...
Не туда копаем.
Просто нужно работать с IB через локальный протокол. Для этого нужно просто изменить строку коннекта к базе. При коннекте через TCP, насколько я помню, используется формат вида HOST:PATH_AT_HOST. Для локального нужно использовать просто путь к файлу к БД, а не заменять HOST на 127.0.0.1 и иже с ними.
Вроде так...
Здравствуйте, Allock, Вы писали:
A>Как узнать, установлен ли TCP/IP на машине? A>Всегда ли это связано с наличием сетиевой карточки?
A>С уважением. A>Аллок.
Вот строки конекта у interbase и firebird
TCP/IP — HOST:PATH_TO_DB;
Named Pipes — \\HOST\PATH_TO_DB;
IPX/SPX — HOST@PATH_TO_DB;
У меня все работает.
Если локально, то просто PATH_TO_DB и все...
Всего наилучшего...
... << RSDN@Home 1.1.4 >> << Windows 2000 Версия: 5.0.2195.0>>
Дункан Маклауд любил ходить в лес и издеваться над кукушками.
138385660
Я уже писал, что так и есть, прописываю локальные пути.
Более того, программу писал не я, я сделал инсталлятор.
Просто "там" было принято решение, что нет ТСП, и меня напрягли озадачиться его обнаружением...
A>По моему, обычного WSAStartup/gethostname должно хватить
А вот это уже интересно!
Только означает ли отсутствие имени локальной машины отсутствие TCP.
Протокол ведь можно и "подпортить", и работать он не будет, но имя у машины останется.
И наооборот...
???
Здравствуйте, Allock, Вы писали:
A>Только означает ли отсутствие имени локальной машины отсутствие TCP.
Честно тебе скажу — не знаю. Интереса изучать поведение программ на "битом" стеке не было.
Предпочитал вызывать нужные функции из WSAPI и обрабатывать возможные ошибки при их вызове. Т.е. либо функция отработает, либо нет и код ошибки. Чем проще модель работы, тем проще жизнь её писателя...
... << RSDN@Home 1.1.4 beta 3 rev. 189 Тишь да гладь, да Божья благодать >>
Since only base protocols and protocol chains are directly usable by
applications, they are the only ones listed when the installed protocols
are enumerated with the WSAEnumProtocols function.
> Всегда ли это связано с наличием сетиевой карточки ?
думаю никак не связанно, наличие именно стека TCP/IP
с наличием сетевой карточки.
можно и deinstall provider TCP, оставив provider SPX
(как base protocol-а)
Posted via RSDN NNTP Server 1.9 gamma
Только на РСДН помимо ответа на вопрос, можно получить еще список орфографических ошибок и узнать что-то новое из грамматики английского языка (c) http://www.rsdn.ru/forum/cpp/4720035.1.aspx
не могу понять, причем здесь Interbase
или разговор выше не о нем ?
Только на РСДН помимо ответа на вопрос, можно получить еще список орфографических ошибок и узнать что-то новое из грамматики английского языка (c) http://www.rsdn.ru/forum/cpp/4720035.1.aspx