Ну кто нибудь помогите OutputStream

 
 
 
Сообщения:7
При передаче массива происходит подмена байтов 0x0a на два байта 0x0d 0x0a
Вот код! Параметры порта на другой стороне совпадают! Не знаю играет ли это роль пишу под ASP Linux.
Это стандартный пример SerialDemo только добавил функцию Write(short[], int) там как видите я сначала вывел массив потом положил в поток! Ловлю эту инфу на другой стороне а там происходят уже эти подмены! ХЗ в чем дело!
private OutputStream os;
public int Write(short[] pbtInfo, int nCount)
{
try
{
byte[] pbt = new byte[nCount];
for(int i = 0; i < nCount; i++)
pbt[i] = (byte)pbtInfo[i];
System.out.print("Serial connection - write - ");
for(int i = 2; i < nCount - 1; i++)
System.out.printf("%02x.",pbtInfo[i]);
System.out.println("");
os.write(pbt, 0, nCount);
}
catch (IOException e)
{
System.err.println(e);
}
return nCount;
}
 
 
Сообщения:2030
ushakofff:
При передаче массива происходит подмена байтов 0x0a на два байта 0x0d 0x0a

Если кто-нибудь увидит Ваш вопрос и решит, что знает, что ответить - он ответит, уж не сомневайтесь. Не нужно размножать темы! Этим Вы не только засоряете форум, но и выставляете себя в известном виде.

Вот то, что может Вам пригодиться. Не моя фраза, цитирую полностью: "в текстовом редакторе в Windows символ перевода строки \r\n (0x0D,0x0A) и если \n (0x0A) нормально переносится, сохраняется и обрабатывается на z/OS, то символ с кодом 0x0D на z/OS служит другим целям."
Поскольку Ваши коды в точности соответствуют указанным здесь, значит и проблема родственная и эта информация должна помочь.

Всякое решение плодит новые проблемы
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет