Socket Socket lehnt Verbindung ab

Diskutiere Socket lehnt Verbindung ab im Netzwerkprogrammierung Bereich.
M

MorrisF

Hallo ihr lieben Java-Programmierer,
ich sitze momentan an einem Problem und weiss nicht weiter...
Und zwar will ich einen TCP-EchoServer in Java programmieren aber immer, wenn ich bei serverSocket.accept(); ankomme, hängt das Programm.
Ich will, dass der Server auf einem Port lauscht, auf eine Antwort wartet und dann die Antwort mit return answer; zurück an den Funktionsaufrufer schickt.
Hier ist mein Code:
Java:
public String TCPServer(int port) throws IOException {
        String answer = null;
       
        ServerSocket serverSocket = new ServerSocket(port);
        try {
              Socket connectionSocket = serverSocket.accept();    //geht nicht
             
              BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
              answer = inFromClient.readLine();
              System.out.println("Antwort: " + answer);
             
              serverSocket.close();
        } catch (UnknownHostException uhe) {
          uhe.printStackTrace();
        }
        return answer;
    }
Kann mir jemand helfen?

MFG
Morris
 
mrBrown

mrBrown

Hast du mal die Doku zu ServerSocket#accept gelesen?
Listens for a connection to be made to this socket and accepts it. The method blocks until a connection is made.
Sobald du dich mit einem Client verbindest, wird das an der Stelle nicht mehr blockieren.
 
M

MorrisF

Gibt es eine Möglichkeit, dass er nicht auf einen Client wartet?
 
K

kneitzel

Also blockierende Aufrufe nennen sich Synchron. Nicht blockierende sind Asynchron. Damit lässt sich dann schon fleissig suchen ...

Ohne so ein Hintergrundwissen: Vor langer Zeit wurde java.nio eingeführt, weil die IO Funktionen von Java davor nicht genug konnten. Man könnte sich also auf jeden Fall etwas mit dem java.nio Package auseinandersetzen, so man Anwendungen entwickeln will, die etwas mit IO machen ....

Und egal über welchen Weg auch immer - man kommt schnell zu:
https://docs.oracle.com/javase/7/docs/api/java/nio/channels/AsynchronousServerSocketChannel.html
 
Thema: 

Socket lehnt Verbindung ab

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben