View Full Version : [Java] Errore java.net.SocketException
diablo...aka...boss
05-09-2009, 17:26
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.
bhe dovresti postare il codice o alemno le righie che ti danno errore...
diablo...aka...boss
06-09-2009, 12:25
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());}
}
}
nuovoUtente86
06-09-2009, 14:00
credo sia un problema legato a windows. Prova eventualmente a cambiare la jre con una versione diversa.
diablo...aka...boss
06-09-2009, 15:50
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.... :what:
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.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.