Caros colegas,
Quero agradecer a colabora��o de todos e compartilhar a solu��o para o problema.
Eu utilizo a classe Desinverte nos dados que chegam atraves da DataInputStream e
Inverte na sa�da dos dados DataOutputStream. No meu caso eu so recebo dados int
e long, por isso s� implementei os metodos Shor e Int.
DOS int = 2 bytes = Java Short
DOS long = 4 bytes = Java Int
Aqui vai o codigo...
class Desinverte {
short Short(short valor)
{
int byte1 = (valor >>> 8) & 0xFF;
int byte2 = (valor & 0xFF);
return (short) ((byte2 << 8) + byte1);
}
int Int(int valor)
{
int byte1 = (valor >>> 24) & 0xFF;
int byte2 = (valor >>> 16) & 0xFF;
int byte3 = (valor >>> 8) & 0xFF;
int byte4 = (valor & 0xFF);
return (int) ((byte4 << 24) + (byte3 << 16) + (byte2 << 8) +
byte1);
}
}
//========================================================
class Inverte {
short Short(short valor)
{
int byte1 = (valor & 0xFF);
int byte2 = (valor >>> 8) & 0xFF;
return (short) ((byte1 << 8) + byte2);
}
int Int(int valor)
{
int byte1 = (valor & 0xFF);
int byte2 = (valor >>> 8) & 0xFF;
int byte3 = (valor >>> 16) & 0xFF;
int byte4 = (valor >>> 24) & 0xFF;
return (int) ((byte1 << 24) + (byte2 << 16) + (byte3 << 8) +
byte4);
}
}
[]s, Grego
____________________Separador de Resposta____________________
Assunto: Re: [SouJava-J] Inversao de bytes no DOS
Autor: <[EMAIL PROTECTED]>
Data: 08/12/99 14:48
[EMAIL PROTECTED] wrote:
>
> Caros colegas,
>
> Recebo num servidor socket, atraves do DataInputStream dados vindos de
clientes
> DOS. O problema � que os tipos int, long e etc no DOS possuem os bytes
> invertidos. Alguem sabe como resolver o problema com Java? Existe alguma
classe
> para desenverter, ou alguem possui por acaso no fundo da gaveta alguma classe
> para fazer esse tratamento?
>
> Desde j�, muito obrigado.
>
> []s,
> Grego
>
Se voce usar as classes de envio de dados do Java (Data Input/Output
Stream, ou se voce prefeirir, usar RMI), voce nao tera nenhum problema
de inversao de bytes. Isso esta escondido de voce pela biblioteca.
Abracos,
Bruno.
______________________________________________________________________
Bruno Peres Ferreira de Souza Sun Microsystems
System Engineer - Java Technologist [EMAIL PROTECTED]
if I fail, if I succeed, at least I live as I believe
--------------------------- LISTA SOUJAVA ---------------------------
http://www.soujava.org.br - Sociedade de Usu�rios Java da Sucesu-SP
[para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
---------------------------------------------------------------------
Received: from server07.brasifrj.com.br [172.16.2.7] by brasifrj.com.br (ccMail Link
to SMTP R8.30.00.7)
; Wed, 08 Dec 1999 17:48:30 -0200
Return-Path: <[EMAIL PROTECTED]>
Received: (qmail 32595 invoked by alias); 8 Dec 1999 19:48:54 -0000
Delivered-To: [EMAIL PROTECTED]
Received: (qmail 32591 invoked from network); 8 Dec 1999 19:48:53 -0000
Received: (ofmipd 209.68.1.162); 8 Dec 1999 19:48:31 -0000
Received: (from slist@localhost) by ansuz.pair.com (8.9.1/8.6.12) id OAA13221 for
[EMAIL PROTECTED]; Wed, 8 Dec 1999 14:48:49 -0500 (EST)
Resent-Date: Wed, 8 Dec 1999 14:48:49 -0500 (EST)
Resent-Message-ID: <[EMAIL PROTECTED]>
Resent-From: [EMAIL PROTECTED]
Resent-Sender: [EMAIL PROTECTED]
Date: 8 Dec 1999 17:44:05 -0200
Message-ID: <[EMAIL PROTECTED]>
From: "Bruno F. Souza" <[EMAIL PROTECTED]>
Sender: [EMAIL PROTECTED]
Reply-To: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
X-Envelope-To: [EMAIL PROTECTED]
Old-X-Envelope-To: <[EMAIL PROTECTED]>
Organization: Sun Microsystems do Brasil
X-Mailer: Mozilla 4.51 [en] (X11; U; SunOS 5.7 sun4m)
X-Accept-Language: en
MIME-Version: 1.0
Subject: Re: [SouJava-J] Inversao de bytes no DOS
References: <[EMAIL PROTECTED]>
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
X-Mailing-List: <[EMAIL PROTECTED]> archive/latest/715
X-Loop: [EMAIL PROTECTED]
Precedence: list