Programmazione SOCKET java-python

di il
1 risposte

Programmazione SOCKET java-python

Salve sto cercando di far comunicare un client e un server scritto rispettivamente uno in java e uno in python... non funziona mi da un errore nel ciclo for...
for i in range(1,int(x)):
		voto = connectionSocket.recv(1024)
		peso = connectionSocket.recv(1024)
		votoperpeso= int(voto) * int(peso)
		media = int(media) + votoperpeso
		sommapeso = int(peso) + sommapeso
questo è lo stralcio di codice per il server in python.
E questo del client in java:
		for(int i=1; i<(Integer.parseInt(x)+1);i++){
		    System.out.print("inserisci un voto (31 per 30&lode): ");
			voto = input.readLine();
			System.out.print("inserisci cfu esame appena inserito : ");
			peso = input.readLine();
			outToServer.writeBytes(voto+'\n');
			outToServer.writeBytes(peso+'\n');
		}
se uso client e server scritti entrambi in java funzionano...cosi per python anche.

COME MAI se mischio i due linguaggi non funziona la comunicazione client-server?

1 Risposte

  • Re: Programmazione SOCKET java-python

    Non conosco python ma dal codice sembrerebbe che la connectionSocket.recv(1024) debba leggere al massimo 1024 bytes, fermandosi comunque al carattere di new line (i.e. '\n').
    Hai preso in considerazione il fatto che il new line possa essere diverso nelle implementazioni dei due linguaggi? Per esempio, potresti provare a vedere cosa succede se spedisci '\r' o entrambi.

    Ad ogni modo, prenderei in considerazione un modo piu' "robusto" di spedire i dati. Per esempio, spedendo prima un magic number, poi il contatore dei dati attesi e poi i dati, o qualcosa del genere.
Devi accedere o registrarti per scrivere nel forum
1 risposte