Voce pode usar um protocolo chamado JNI (Java native Interface) que lhe permite comunicar o Java com programas escritos em C.
 
Basicamente o que voce faz eh criar classes Java, contendo metodos abstratos em Java que fariam a leitura da estrutura descrita por voce. A implementacao real do metodo abstrato seria feita em C.
 
No site da Sun existe uma boa documentacao de como usar o JNI, inclusive com programas de exemplo.
 
[]'s
 
 
 
----- Original Message -----
Sent: Monday, March 10, 2003 12:03 PM
Subject: [java-list] Comunicação C x Java

Pessoal,
 
Tenho um programa em C que escreve em uma porta.
Este programa utiliza um protocolo de comunicação baseado
em estruturas de registro.
 
Exemplo da estrutura (C++):
   
struct st_cabecalho {
   unsigned char tipo;
   unsigned char acao;   
   unsigned char tamanho_corpo[10];   
   unsigned char chksum;              
   unsigned char ip_destino[25];    
   unsigned char nomedoarquivo[300]; 
   unsigned char linhacomando[300];  
};
struct st_pacote {
   unsigned char tama[4];
   struct st_cabecalho stcabec;
   char msg[40960];
};
 
Meu problema é o seguinte:
Já tenho um programa em delphi que le essa estrutura baseado em record (registros).
 
type
  Cabec = record
    Tipo: char;
    Acao: char;
    Tama: array[1..10] of char;
    chksum: byte;
    ipdestino: array[1..25] of char;
    nomearq: array[1..300] of char;
    lcomando: array[1..300] of char;
  end;
 
  Pacote = record
    Tama: array[1..4] of byte;
    Cabeca: Cabec;
    Corpo: array[1..40960] of byte;
  end;
 
Preciso converter esse programa delphi para Java, só que estou enfrentando dificuldades
em converter essa estrutura para Java (já que ela não implementa estrutura de registros).
 
Alguem tem alguma ideia de como fazer isso, sendo que naum posso mudar o protocolo
de comunicação que esta escrito em C ?
 
Obrigado,
Daniel

Responder a