# Fehler bei Socket



## CookieSoft (25. Apr 2012)

Hey, hallo, 
ich hab da ein Problem ich habe folgenden Server Socket:

```
package org.cookiesoft.tcp;

import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.io.*;

public class Server {
 public static void main(String[] args) {
     Server server = new Server();
     try {
         server.test();
     } catch (IOException e) {
         e.printStackTrace();
     } 
 }
 void test() throws IOException {
     int port = 25565;
     InetAddress locIP = InetAddress.getByName("127.0.0.1");
     ServerSocket serverSocket = new ServerSocket(port, 0, locIP);
     Socket client = warteAufAnmeldung(serverSocket);
     String nachricht = leseNachricht(client);
     System.out.println(nachricht);
     schreibeNachricht(client, nachricht);
 }
 Socket warteAufAnmeldung(ServerSocket serverSocket) throws IOException {
     Socket socket = serverSocket.accept(); 
     return socket;
 }
 String leseNachricht(Socket socket) throws IOException {
     BufferedReader bufferedReader = 
         new BufferedReader(
             new InputStreamReader(
                 socket.getInputStream()));
     char[] buffer = new char[200];
     int anzahlZeichen = bufferedReader.read(buffer, 0, 200); 
     String nachricht = new String(buffer, 0, anzahlZeichen);
     return nachricht;
 }
 void schreibeNachricht(Socket socket, String nachricht) throws IOException {
     PrintWriter printWriter =
         new PrintWriter(
             new OutputStreamWriter(
                 socket.getOutputStream()));
     printWriter.print(nachricht);
     printWriter.flush();
 }
}
```

Doch ich bekomme folgenden Fehler:

```
java.net.BindException: Cannot assign requested address: JVM_Bind
	at java.net.DualStackPlainSocketImpl.bind0(Native Method)
	at java.net.DualStackPlainSocketImpl.socketBind(Unknown Source)
	at java.net.AbstractPlainSocketImpl.bind(Unknown Source)
	at java.net.PlainSocketImpl.bind(Unknown Source)
	at java.net.ServerSocket.bind(Unknown Source)
	at java.net.ServerSocket.<init>(Unknown Source)
	at org.cookiesoft.tcp.Server.test(Server.java:20)
	at org.cookiesoft.tcp.Server.main(Server.java:12)
```

Doch ich bin mir SICHER das der Port frei ist denn ich habe es zusätzlich mit nem Minecraft Server getestet(ist ja auch java) und da klappts (Habe es auch mit anderen Ports probiert...)
Vielen Dank für Antworten


----------



## stulleman (25. Apr 2012)

Sorry! Habe nicht richtig gelesen!
Bleib aber in dem Bereich 1024 – 49151.


----------



## irgendjemand (25. Apr 2012)

hmm ...
was passiert denn wenn du nur den "normalen" konstruktor [c]Socket(int)[/c] verwendest ? also ohne explizites bind auf 127.0.0.1 ?
vielleicht auch mal einen anderen port > 1024 versuchen ...

was mir noch einfallen würde ist das deine firewall blockiert *warum auch immer*

leider ist die exception in diesem fall ja nur bedingt hilfreich als das diese lediglich aussagt das beim bind etwas schief gelaufen ist ...


----------



## Lumaraf (26. Apr 2012)

Ist nur ne Vermutung, aber ich schätze mal das backlog 0 das Problem ist. Benutz einfach den Konstruktor für ServerSocket ohne den backlog Parameter.


```
ServerSocket serverSocket = new ServerSocket(port);
```


----------



## CookieSoft (26. Apr 2012)

hmh komisch grad klappt es i-wie ) naja trotzdem danke (i-was stimmt mit meinem PC nicht ;DD)


----------

