Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Как в TELnet отправить строку в одном пакете?  (Прочитано 12527 раз)
0 Пользователей и 1 Гость смотрят эту тему.
PSD
Главный специалист

ru
Offline Offline
Пол: Мужской

« : 20-04-2004 05:54 » 

Ситуация тестирую сетевую прогу, нужно отправлять команды в порт
цепляю telnet на нужный порт и пытаюсь на брать команду...
В ркзультате мне прога на каждый символ бьет "Неизвесная команда"  
То есть  каждый символ отправляется не медленно и как результат прога реагирует на него как на отдельную команду.

Как в телнет набрать и отправить строку целиком?
Записан

Да да нет нет все остальное от лукавого.
Skubent
Гость
« Ответ #1 : 20-04-2004 06:30 » 

PSD, ежели не ошибаюсь, то для telnet'a концом строки является любая ESC-последовательность. Смотри, что у тебя прога пишет, или код дай поглядеть, не телепат я Улыбаюсь.
Записан
PSD
Главный специалист

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 20-04-2004 09:48 » 

Цитата

PSD, ежели не ошибаюсь, то для telnet'a концом строки является любая ESC-последовательность. Смотри, что у тебя прога пишет, или код дай поглядеть, не телепат я .

хе - хе  нету кода ... "Неизвестная команда" это отсылает через сокет моя прога в том случае если пришла строка которыю она не может индатифизировать (короече пурга)

Ситуация следующая что telnet  не ждет  пока я наберу  полную команду для моей проги допустим
[SetTime 3:00:00]
и нажму ентер (или еще чтото для отправки)

а  отправляет каждый символ сразу после ввода
и во ответ от моей проги я совершенно законно  получаю
"Неизвестная команда "
"Неизвестная команда [e]"
"Неизвестная команда [t]"
и так далее...
Ну не умеет она собирать команды по частям изначально так заложено что вся команда оправляется в одном пакете и приходит целиком.

Теперь вопрос
TELNET так и должен работать ? Или есть возможность попросить его собрать строку и отправить целиком?
Записан

Да да нет нет все остальное от лукавого.
Sommer
Молодой специалист

us
Offline Offline

« Ответ #3 : 20-04-2004 09:55 » 

PSD,
а если набрать строку в другом месте
а потом copy paste?
Записан

когда-нибудь, я верю, ты будешь ехать по этому городу и поймёшь, что хочешь увидеть меня за рулём мчащейся по соседней полосе машины.
но тогда меня уже не будет
в этом городе
forever yours.
Sommer
Молодой специалист

us
Offline Offline

« Ответ #4 : 20-04-2004 10:00 » 

PSD,
попробуй работать с телнетом через командную строку
Записан

когда-нибудь, я верю, ты будешь ехать по этому городу и поймёшь, что хочешь увидеть меня за рулём мчащейся по соседней полосе машины.
но тогда меня уже не будет
в этом городе
forever yours.
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 20-04-2004 11:33 » 

В своей программе, при приеме строки, ожидай конца (0x0d).
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Roman123
Гость
« Ответ #6 : 20-04-2004 13:01 » 

Цитата: PSD

Теперь вопрос
TELNET так и должен работать ? Или есть возможность попросить его собрать строку и отправить целиком?


Дело не в телнете, а в реализации ТСР/IP. Никно не гарантирует, что:
1. вызов send пошлёт весь буфер сразу (так как буфер ОС ограничен)
2. (даже если 1 будет успешно) что весь буфер через сеть будет передаваться одним пакетом
3. принимающая сторона (ОС) получит все переданные пакеты, соберёт их и неё при этом не закончатся приёмные буфера
4. у принимающей стороны вызов recv будет пытаться забрать всё, что есть в прийомном буфере

Поэтому, реализация всегда должна собирать то, что приходит из сокета, до какого-то определённого символа (типа конец строки).
Записан
.
Молодой специалист

ru
Offline Offline
Пол: Мужской

« Ответ #7 : 20-04-2004 14:18 » 

из-за этой нехорошей реализации виндового телнета, если мне надо потелнетиться именно в винде, пользуюсь портом телнета из CygWin или подобных систем
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines