Witam, dalej kontynuuje pracę nad tym projektem.
Teraz napotkałem na problem z komunikacją C --> Java.
Po stronie C wysyłam komunikat zwrotny(char *)
Funkcja do wysyłania wygląda następująco:
Kopiuj
if(strncmp(kod_operacji, "GKT", KOD_OPERACJI_MAX) == 0) {
printf("get_ksiazka_table\n");
if(record_count_ksiazka > 0) {
int i;
for(i = 1; i <= record_count_ksiazka; i++) {
//for(i = 1; i <= 10; i++) {
struct KSIAZKA ksiazka = get_ksiazka_by_id(i);
char * message = parse_to_string_ksiazka(ksiazka);
//char * message = "000;1;Java & XML;Brian Jonh;PWN;";
write(socket, message, strlen(message), 0);
printf("message: %s %d\n", message, sizeof(message));
Sleep(200);
}
}
}
Powyżej do wysyłania używałem również funkcji send() jak i write(), komunikat zostaje wysłany, gorzej już z odebraniem.
Próbowałem tak:
Kopiuj
BufferedReader in = null;
in = new BufferedReader(new InputStreamReader(connectionFactory.getConnection().getInputStream()));
String line;
while ((line = in.readLine()) != null) {
System.out.println("Line: "+line);
}
Niestety blokuje się..
próbowałem również tak:
Kopiuj
while(getDataIn().read(bs) != -1) {
for (byte b:bs) {
// convert byte into character
char c = (char)b;
str = str + c;
}
}
Funkcja getDataIn() zwraca obiekt DataInputStream.
Nie wytrzymuje już z tym nerwowo, jest ktoś w stanie pomóc?