|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jan 2008
Città: Bologna
Messaggi: 2179
|
[Java] Errore java.net.SocketException
Quando faccio partire un semplice esempio di un server mi compare questo errore:
Exception in thread "main" java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind at java.net.PlainSocketImpl.socketBind(Native Method) at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:365) at java.net.ServerSocket.bind(ServerSocket.java:319) at java.net.ServerSocket.<init>(ServerSocket.java:185) at java.net.ServerSocket.<init>(ServerSocket.java:97) at esempio.Server.<init>(Server.java:23) at esempio.Server.main(Server.java:19) Java Result: 1 sia se lo eseguo da NetBeans che da promt. il tutto con win 7 appena installato. però altri normali esempi di java (non server-client) funzionano correttamente. Come posso risolvere ? Grazie.
__________________
CM 690 Pure w || ROG Crosshair III || AMD || OCZ Gold || Ati || ciao Kiu... || LOST addicted - 2004 ♥ 2010 1900 S.S.LAZIO |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Mar 2008
Messaggi: 140
|
bhe dovresti postare il codice o alemno le righie che ti danno errore...
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jan 2008
Città: Bologna
Messaggi: 2179
|
Hai ragione
![]() Server: public class Server extends Thread { private ServerSocket Server; public static void main(String args[]) throws Exception { new Server(); } public Server() throws Exception { Server = new ServerSocket(4000); // Creo l' oggetto ServerSocket e lo pongo in ascolto sulla porta 4000 System.out.println("Il Server è in attesa sulla porta 4000."); this.start(); // richiamando questo metodo lancio il metodo run e faccio partire l' esecuzione in multithreading } @Override public void run() { while(true) // ciclo infinito, il server è in ascolto sulla porta 4000, ogni volta che riceve una richiesta crea i canali di comunicazione per poter comunicare con il client { try { System.out.println("In attesa di Connessione."); Socket client = Server.accept(); // Quando il server riceve una richiesta da un client crea una nuova istanza di una Socket per quel client System.out.println("Connessione accettata da: "+ client.getInetAddress()); Connect c = new Connect(client); //Questo oggetto viene utilizzato per creare i canali di comunicazione tra il client ed il server } catch(Exception e) {} } } } class Connect extends Thread { private Socket client = null; BufferedReader in = null; PrintStream out = null; public Connect() {} public Connect(Socket clientSocket) { client = clientSocket; try { in = new BufferedReader( // canale di comunicazione di input new InputStreamReader(client.getInputStream())); out = new PrintStream(client.getOutputStream(), true); // canale di comunicazione di output } catch(Exception e1) { try { client.close(); } catch(Exception e) { System.out.println(e.getMessage());} return; } this.start(); } @Override public void run() { try { out.println("Generico messaggio per il Client"); out.flush(); // chiude gli stream e le connessioni out.close(); in.close(); client.close(); } catch(Exception e) {} } } Client: public class Client { public static void main(String argv[]) { BufferedReader in = null; PrintStream out = null; Socket socket = null; String message; try { // Il client effettua una connessione con il server creando un nuovo oggetto Socket socket = new Socket("localhost", 4000); // Apre i canali I/O, si creano i canali di comunicazione con il server in = new BufferedReader( new InputStreamReader(socket.getInputStream())); out = new PrintStream(socket.getOutputStream(), true); // Comunicazione con il server (in questo caso lettura di un messaggio da parte del client) message = in.readLine(); System.out.print("Messaggio Ricevuto : " + message); // Una volta completata la comunicazione il client disalloca le risorse impiegate: chiude i canali di comunicazione e la connessione con il server. out.close(); in.close(); } catch(Exception e) { System.out.println(e.getMessage());} } }
__________________
CM 690 Pure w || ROG Crosshair III || AMD || OCZ Gold || Ati || ciao Kiu... || LOST addicted - 2004 ♥ 2010 1900 S.S.LAZIO Ultima modifica di diablo...aka...boss : 06-09-2009 alle 14:47. |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
credo sia un problema legato a windows. Prova eventualmente a cambiare la jre con una versione diversa.
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Jan 2008
Città: Bologna
Messaggi: 2179
|
Jdk e jre sono le versioni più aggiornate, ora ho provato un altro esempio sempre client-server e funziona sia da NetBeans che da promt....
![]() si vede che quello sopra gli sta antipatico...comunque ciò conferma il fatto che non è java il problema. Ora vedrò con altri esempi come si comporta.
__________________
CM 690 Pure w || ROG Crosshair III || AMD || OCZ Gold || Ati || ciao Kiu... || LOST addicted - 2004 ♥ 2010 1900 S.S.LAZIO |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:57.