|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Oct 2007
Messaggi: 33
|
[Java ]Socket Client/Server
Salve a tutti !!
Sto cercando di realizzare un programma che crei un Server che riceve un semplice messaggio e lo stampi ;ma ho alcuni dubbi: Utilizzando il multithreading posso eseguire Server e client sulla stessa macchina??? Consentitemi di postare il codice per farmi capire meglio: Questo è il server import java.io.IOException; import java.io.InputStream; import java.net.ServerSocket; import java.net.Socket; public class ServerClient { public static void main(String[] args)throws IOException { ServerSocket ss = new ServerSocket(2000);//creare una ServerSocket ed attendere connessioni in ingresso: Socket s = ss.accept(); Client client=new Client(); client.start(); InputStream in = s.getInputStream(); int readbyte = in.read(); while (readbyte >= 0) { System.out.print((char)readbyte); readbyte = in.read(); } } } Questo è il client import java.io.IOException; import java.io.OutputStream; import java.net.Socket; public class Client extends Thread{ public void run(){ System.out.println("pippo baudo"); String message = "Messaggio di prova"; try{ Socket c = new Socket("127.0.0.1",2000); OutputStream out = c.getOutputStream(); out.write(message.getBytes()); out.close(); c.close(); } catch(IOException exc){ System.out.println("eccezione"); } } } Quando eseguo il programma il server sembra funzionare ma il run del client nn viene esguito Sapreste aiutarmi???? grazie un saluto a tutti |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Sep 1999
Città: Pistoia
Messaggi: 618
|
Se il run non ti viene eseguito per niente, nemmeno le prime due istruzioni è perchè non lo "starti" essendo un thread..
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
|
Intanto indento il codice al posto tuo...
Server: Codice:
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class ServerClient {
public static void main(String[] args) throws IOException {
ServerSocket ss = new ServerSocket(2000);
Socket s = ss.accept();
Client client=new Client();
client.start();
InputStream in = s.getInputStream();
int readbyte = in.read();
while (readbyte >= 0) {
System.out.print((char)readbyte);
readbyte = in.read();
}
}
}
Codice:
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
public class Client extends Thread {
public void run() {
System.out.println("pippo baudo");
String message = "Messaggio di prova";
try {
Socket c = new Socket("127.0.0.1",2000);
OutputStream out = c.getOutputStream();
out.write(message.getBytes());
out.close();
c.close();
}
catch(IOException exc) {
System.out.println("eccezione");
}
}
}
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes] "Pirating software? Choose Microsoft!" |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
|
allora...qui il problema è che il server si blocca nell'esecuzione della riga
Codice:
Socket s = ss.accept();
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes] "Pirating software? Choose Microsoft!" |
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Oct 2007
Messaggi: 33
|
Ok ho capito quale era il problema!!!
Questo programmino è solo un primo approccio a questo tipo di classi... Comunque grazie sei stato molto gentile ciao |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:53.



















