Ciao a tutti,
ho una domanda...è possibile avere tre processi server java (usando il protocollo TCP) che lavorano in parallelo e che comunicano tutti e tre con un unico client, senza usare i threads? Come?![]()
Grazie a tutti in anticipo per la risposta.
Ciao a tutti,
ho una domanda...è possibile avere tre processi server java (usando il protocollo TCP) che lavorano in parallelo e che comunicano tutti e tre con un unico client, senza usare i threads? Come?![]()
Grazie a tutti in anticipo per la risposta.
Analisi lessicale del testo : tre processi-parallelo = 1 Thread SBAGLIATOCiao a tutti,
ho una domanda...è possibile avere tre processi server java (usando il protocollo TCP) che lavorano in parallelo e che comunicano tutti e tre con un unico client, senza usare i threads? Come?
Grazie a tutti in anticipo per la risposta.
tre processi-parallelo = 3 Thread Corretto.
Rivedi un pò il senso dei termini "Processo","Paralleli" non credo che sia cosi difficile capirlo.
Ad ogni modo, una socket (l'oggetto che si usa per la comunicazione fra un client ed un server) è un collegamento punto-punto... è come un cavo di rete: ha una testa collegata al PC e una collegata ad una presa (a muro, su uno switch, su un hub, ecc) e non è "sdoppiabile".
Ciao.![]()
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
Come hanno già detto gli altri dovresti spiegare meglio cosa vuoi fare e cosa intendi per:
<< comunicano tutti e tre con un unico client >>
Ciao.
Ciao, mi spiego meglio... devo scrivere un programma client/server per il calcolo in parallelo del prodotto di un vettore riga con una matrice. Il client deve leggere da input la matrice ed il vettore, deve partizionare la matrice in colonne ed inviare ad ognuno dei tre server usati per il calcolo, il vettore ed una delle colonne della matrice. Il calcolo del prodotto (tra due vettori quindi ) deve essere eseguito in parallelo sui tre processi server ed infine i risultati parziali devono essere aggregati sul client per produrre il vettore riga da visualizzare i output.
Io chiedevo se si può realizzare il programma senza utilizzare i threads...
Allora vedila così:
una applicazione può essere multi processo o multi thread (oppure anche entrambe le cose se ogni processo è pure multi thread). In entrambi i casi il calcolo è parallelo.
Se il tuo server è costituito da più processi, la tua computazione è già parallela.
Originariamente inviato da c0der
Allora vedila così:
una applicazione può essere multi processo o multi thread (oppure anche entrambe le cose se ogni processo è pure multi thread). In entrambi i casi il calcolo è parallelo.
Se il tuo server è costituito da più processi, la tua computazione è già parallela.
Grazie per la risposta. Io ho realizzato tre server "separati" ed un client, ma sicuramente ho sbagliato qualcosa perchè il client riesce a comunicare solo con il primo server e non con gli atri due, che danno questo errore:
"Exception in thread "main" java.net.BindException: Address already in use: JVM_Bind"
Come posso risolvere?
Sulla macchina server una coppia indirizzoCome posso risolvere?orta può essere messa in ascolto solo 1 volta,
le successive ti daranno appunto errore "Address already in use"
Semplicemente basta che cambi porta, esempio:
processo1: gli fai usare la porta 4001
processo2: la porta 4002
processo3: la porta 4003
Ciao.
Ho provato a cambiare porta ma non cambia niente...e poi come fanno gli altri due server a comunicare con il client se hanno una porta diversa (da quella del client)? Non ho capito bene...Originariamente inviato da c0der
Sulla macchina server una coppia indirizzoorta può essere messa in ascolto solo 1 volta,
le successive ti daranno appunto errore "Address already in use"
Semplicemente basta che cambi porta, esempio:
processo1: gli fai usare la porta 4001
processo2: la porta 4002
processo3: la porta 4003
Ciao.
In che senso? Se i server sono in ascolto su porte diverse non generano errori.Originariamente inviato da isal
Ho provato a cambiare porta ma non cambia niente...
Che gliene frega al server della porta su sui lui è in ascolto... è un problema del client.e poi come fanno gli altri due server a comunicare con il client se hanno una porta diversa (da quella del client)? Non ho capito bene...
Chiaramente, il client dovrà effettuare 3 connessioni. Il client avrà quindi 3 socket e ciascun server comunicherà col client attraverso la "sua" socket. E' come se dal client uscissero 3 cavi... ciascuno collegato a uno dei tre server.
Ciao.![]()
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza