m3kka
07-03-2009, 09:59
Intanto posto il codice ^^
server = new ServerSocket(7777);
Socket s1 = server.accept();
cport = 8000 + (int)(Math.random() * 100);
new ServerDinamico(cport);
cPorta = new PrintStream(s1.getOutputStream());
cPorta.println(cport);
cPorta.close();
s1.close();
Questo primo spezzone di codice in sostanza dovrebbe ricevere una richiesta, generare un numero casuale compreso da 8000 e 8100, inizializzare un server utilizzando il numero casuale come porta (attraverso la classe ServerDinamico) e poi comunicare la nuova porta a cui connettersi al client che ha fatto la prima richiesta.
public ConnessionePreliminare(InetAddress ip) throws IOException
{
Socket s1 = new Socket(ip, 7777);
BufferedReader porta = new BufferedReader(new InputStreamReader(s1.getInputStream()));
s2 = new Socket(ip, Integer.parseInt(porta.readLine()));
porta.close();
s1.close();
}
Questa è la classe utilizzata per connettersi al server di cui sopra.
Per qualche motivo a me ignoto tutto funziona meno la comunicazione della porta tra server e client, quindi:
- Viene ricevuta la richiesta dal server
- Il server ne crea un secondo sulla porta randomizzata (che si mette in listening)
- Il server non riesce ad inviare il numero di porta a cui connettersi
Spero di essermi spiegato ^^'' è un pelo contorta come cosa ^^
Ringrazio fin d'ora per qualsiasi aiuto, 'sta cosa mi sta facendo uscire di senno.
server = new ServerSocket(7777);
Socket s1 = server.accept();
cport = 8000 + (int)(Math.random() * 100);
new ServerDinamico(cport);
cPorta = new PrintStream(s1.getOutputStream());
cPorta.println(cport);
cPorta.close();
s1.close();
Questo primo spezzone di codice in sostanza dovrebbe ricevere una richiesta, generare un numero casuale compreso da 8000 e 8100, inizializzare un server utilizzando il numero casuale come porta (attraverso la classe ServerDinamico) e poi comunicare la nuova porta a cui connettersi al client che ha fatto la prima richiesta.
public ConnessionePreliminare(InetAddress ip) throws IOException
{
Socket s1 = new Socket(ip, 7777);
BufferedReader porta = new BufferedReader(new InputStreamReader(s1.getInputStream()));
s2 = new Socket(ip, Integer.parseInt(porta.readLine()));
porta.close();
s1.close();
}
Questa è la classe utilizzata per connettersi al server di cui sopra.
Per qualche motivo a me ignoto tutto funziona meno la comunicazione della porta tra server e client, quindi:
- Viene ricevuta la richiesta dal server
- Il server ne crea un secondo sulla porta randomizzata (che si mette in listening)
- Il server non riesce ad inviare il numero di porta a cui connettersi
Spero di essermi spiegato ^^'' è un pelo contorta come cosa ^^
Ringrazio fin d'ora per qualsiasi aiuto, 'sta cosa mi sta facendo uscire di senno.