[root@xxx:~]# telnet 10.49.46.2
Trying 10.49.46.2...
Connected to 10.49.46.2.
Escape character is '^]'.
Это означает, что вы успешно установили TCP-соединение с удаленным демоном. Какой демон? Тот xinetd
, который служит концентратором. Теперь, когда вы подключены, xinetd
пытается запустить конкретную службу (telnet
).
Connection closed by foreign host.
Это означает, что не удалось запустить службу telnet
. Вы можете добавить параметры отладки в командную строку telnetd
и прочитать журналы xinetd
, чтобы увидеть, что именно не удалось.
Похоже, вы используете BusyBox версии telnetd
. В отличие от классических версий telnetd
, тот, который поставляется вместе с Busybox, представляет собой автономный демон, которому требуется опция -i
для взаимодействия сinetd
(службами, запускаемыми inetd
имеют особый интерфейс, несовместимый с автономным демоном :они не должны открывать и прослушивать сокеты, они должны взаимодействовать с клиентом через stdin/stdout ).
Таким образом, ваша xinetd
конфигурация должна быть:
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/telnetd
server_args = -i
log_on_failure += USERID
instances = 10
disable = no
}
Ваш тест верен, хотя, строго говоря, ограничен — он только показывает, что в Linux строки, созданные вашими командами echo
, занимают соответственно 14 и 17 байт, как измеряется wc --bytes
. Каждые \n
и \r
занимают один байт, поэтому каждая новая строка подвергается штрафу в один -байт при использовании новой строки в стиле DOS/Windows -.
Строго говоря, требования к объему памяти зависят от программы, которую вы используете для записи файла; ни Linux, ни Windows ничего не навязывают содержимому файла. Можно хранить файлы с новыми строками CRLF в Linux и файлы с новыми строками LF в Windows. Чтобы определить требования к хранилищу вашего файла в любой операционной системе, вы должны написать его, используя любой инструмент, который вы собираетесь использовать, в обеих операционных системах, и измерить размер файла с помощью инструментов операционной системы.
Обратите внимание, что файлы обычно используют хранилище, кратное определенной единице хранения, поэтому изменение, связанное с новыми строками, может не иметь практического значения.
Возможно.
Windows вполне способна хранить любые двоичные файлы без какой-либо специальной обработки символов CR и LF --, в противном случае никакие двоичные файлы не будут работать. Но в программах Windows принято хранить новые строки в виде пар CR+LF, в отличие от Unixen, где принято просто использовать LF. Этот обычай может быть кодифицирован и в системных библиотеках, но я не прикасался к программированию Windows целую вечность, так что мне нечего сказать.
Однако это еще не все... Если вы откроете даже просто Блокнот и начнете сохранять файл, вы столкнетесь с некоторыми параметрами формата. В системе, которая была у меня под рукой, варианты были «ANSI», «Unicode» и «UTF -8».Я создал файл с содержимым foo⏎bar⏎doo⏎
(, где ⏎
— перевод строки ), а результирующие размеры файлов составили 15, 32 и 18 байт соответственно.
Первый из них просто foo\r\nbar\r\ndoo\r\n
, сохраненный в кодовой странице Windows -1252, хотя с этими символами это не имеет значения. ä
будет храниться здесь как один байт. Второй — UTF -16 (или UCS -2? ), так что два байта на символ плюс два -байта byte -метка заказа (BOM ). Символы включают CR и LF, поэтому всего 15 символов плюс спецификация, что составляет 32 байта. Третий, UTF -8, такой же, как и первый, за исключением того, что префикс спецификации в кодировке UTF -8 добавляет к тексту три байта. В UTF -8 ä
— это два символа. Что ж, после написания этого я заметил, что вы упомянули «текстовый файл ASCII», но различия между кодировками показывают, что приложения могут писать в файл все, что хотят.
Я ожидаю, что если я возьму, например,. Cygwin Bash под Windows и запустить echo -e 'foo\nbar\ndoo\n'
, я бы получил только эти 12 байтов, без байтов CR. Точно так же любой текстовый редактор в Windows может хранить файлы только с LF для новой строки.
Так что, на самом деле, это зависит от того, какую программу вы используете для создания файла и в каком формате хотите сохранить файл.