Использую telnet-клиент на основе System.Net.Sockets.TcpClient
Реализовал установку кодировки. Приём кириллических символов работает. А отправка нет. Например, шлю байт 215 0b1101_0111
, а на удаленный хост приходит 87 0b0101_0111
var tcpClient = new TcpClient(host, port);
.....
byte[] buffer = new byte[3];
buffer[0] = 0b1101_0111;
buffer[1] = (byte)'\r';
buffer[2] = (byte)'\n';
tcpClient.GetStream().Write(buffer, 0, buffer.Length);
Как правильно понял @PavelMayorov, проблема на стороне удалённого хоста. По умолчанию, он общается с клиентом в каком-то 7-битном режиме. Однако у меня имелась сторонняя программа телнет-клиент, которая могла работать в полнобайтном режиме. С помощью Wireshark я просканировал трафик, которым обменивались эта программа и проблемный хост. Оказалось после ввода пароля, они начинают обмениваться особыми командами, которые начинались с байта ESC(27, \033, 0x1B). Это явно не входит в Telnet протокол, это какой-то специфичный для сервера язык жестов. В Telnet-е команды должны начинаться с байта IAC (255, \377, 0xFF). Так как документации на этот язык жестов я не нашёл, то пришлось просто составить словарь вопросов-ответов, и воткнуть их в своё приложение. Теперь я могу отправлять кириллические символы в своём приложении и они доходят как надо.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
При запуске приложения, у которого более 20 работающих потоков, окно "Потоки" (Отладка->Окна->Потоки) ничего не выводитОно пустое
Какие есть варианты распознать бездействие игрока? допустим если 15 секунд ничего не делает не нажимает, тогда какое то действие выполнять...
Хочу наладить обмен информации сервер-клиент(Nodejs<->Unity3D) В случае с серверной частью беру такой скрипт
Работал с потоками и появился вопрос, когда увидел вот этот код: