Threading mit BufferedReader/InputStream & sockets

coffeecups

Mitglied
Hallo,

hab hier ein minimales Grundgerüst eines Javaservers um mein Problem zu veranschaulichen.

Es geht darum, dass ich nicht ganz weiß wie ich mit dem BufferedReader/InputStream bei mehreren Threads umgehen soll. Beim Beispiel hab ich ein kleines sleep(5000) eingebaut, sobald während des sleeps mehrere Threads auf localhost:8000 zugreifen, werden diese Anfragen nur nacheinander, nicht aber parallel durchgeführt. Wird der BufferedReader nicht geöffnet, dann funktioniert die parallele Abarbeitung.

Liegt es evtl daran dass ich versuche, bei mehreren Anfragen mehrere Streams des selben Sockets zu öffnen? Hab echt keinen Plan... derzeit wartet wie gesagt das Prog immer, bis der Stream geschlossen wurde bevor der nächste Thread drankommt...

MiniServer.java:
Java:
package miniexample;

import java.io.*;
import java.net.*;

public class MiniServer {
    private static ServerSocket serverSocket;

    public static void main(String[] args) throws IOException, Exception {
 
        int port = 8000;
        serverSocket = new ServerSocket(port);
        
        while (true) {
            try {
                Socket clientSocket = serverSocket.accept();
                System.out.println("New Client: " + clientSocket.getPort());
                MiniClient clientThread = new MiniClient(clientSocket);
                clientThread.startClient();
            } catch (Exception e) {
                System.out.println(e);
            }}}}

MiniClient.java:
Java:
package miniexample;
 
import java.io.IOException;
import java.net.*;
import java.util.logging.Level;
import java.util.logging.Logger;
 
 
public class MiniClient extends Thread {

    private Socket socket;

    public MiniClient(Socket incClient) {
        socket = incClient;
    }

    public void startClient() {
        start();
    }

    @Override
    public void run() {

        MiniClass myMiniClass = new MiniClass();
        try {     
            myMiniClass.streamSomething(this.socket);
        } catch (InterruptedException | IOException ex) {
            System.out.println("Exception: " + ex);
        }
    }
}

MiniClass.java:
Java:
package miniexample;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;

public class MiniClass {

    private Socket socket;
    BufferedReader clientOut;

    MiniClass() {
    }

    public void streamSomething(Socket incSocket) throws IOException, InterruptedException {
        this.socket = incSocket;
        clientOut = new BufferedReader(new InputStreamReader(
                socket.getInputStream()));
        try {
            clientOut = new BufferedReader(new InputStreamReader(
                    socket.getInputStream()));
            String firstLine = clientOut.readLine();
            doSomething(socket.getPort());
        } finally {
            clientOut.close();
        }
    }

    public void doSomething(long threadID) throws InterruptedException {
        System.out.println("Hello Thread No. " + threadID);
        System.out.println("I'm starting to sleep now");
        Thread.sleep(5000);
        System.out.println("Woke up!");
    }
}

Bin für jeden Hinweis dankbar!!

LG
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Tarrew Threading - Unregelmäßige Lock-Vergabe Allgemeine Java-Themen 0
Thallius Ist Background-Threading in Java wirklich so schwer? Allgemeine Java-Themen 7
B Threading Allgemeine Java-Themen 23
Luk10 Multi-Threading mit join() Allgemeine Java-Themen 16
R Threading und Rekursion führen zu “GC overhead limit exceeded” Allgemeine Java-Themen 4
SuperSeppel13 Bilder auf Anfrage laden - Threading Allgemeine Java-Themen 3
J Threading / Callables Allgemeine Java-Themen 8
K Threading - schreiben auf Hashmap/löschen - ConcurrentModificationException Allgemeine Java-Themen 3
F Threading oder kein Threading - das ist hier die Frage. Allgemeine Java-Themen 23
G Fehlerbereinigung bei Multi Threading Anwedung Allgemeine Java-Themen 2
W Socket.setSoTimeout -> BufferedReader -> Default value Allgemeine Java-Themen 4
kodela Unterschiedliches Verhalten von BufferedReader Allgemeine Java-Themen 3
D BufferedReader bricht nach 1248 Iterationen ab Allgemeine Java-Themen 14
C BufferedReader/BufferedWriter schreibt nicht alle Bytes Allgemeine Java-Themen 2
C TCP Server und BufferedReader Leerstring im Stream? Allgemeine Java-Themen 5
A BufferedReader ohne System.in Allgemeine Java-Themen 9
J BufferedReader Datei einlesen Allgemeine Java-Themen 8
Messoras Der BufferedReader mag mich nicht Allgemeine Java-Themen 47
J BufferedReader OutOfMemory umgehen? Allgemeine Java-Themen 10
B Input/Output BufferedReader Allgemeine Java-Themen 3
O BufferedReader von ganz unten anfangen zu lesen Allgemeine Java-Themen 7
S BufferedReader/PrintWriter an einer HTML Allgemeine Java-Themen 6
M BufferedReader: Vom Logfile zur Datenbank Allgemeine Java-Themen 6
S Null Pointer Exception bei BufferedReader Allgemeine Java-Themen 4
K BufferedReader.readLine erkennt Zeilenende nicht Allgemeine Java-Themen 11
D 'InputStreamReader' & 'BufferedReader' führen zu "cannot find symbol"-Fehler Allgemeine Java-Themen 3
D Scanner leer aber bufferedReader nicht?! Allgemeine Java-Themen 2
A bufferedReader readline, encoding Allgemeine Java-Themen 5
V wie bufferedreader.readline() unterbrechen? Allgemeine Java-Themen 4
Developer_X Java BufferedReader mit URL Allgemeine Java-Themen 5
D BufferedREader#readLine Allgemeine Java-Themen 20
Semox Fehler - Zuweisung aus BufferedReader an Variable Allgemeine Java-Themen 3
S Exception beim BufferedReader Allgemeine Java-Themen 3
J BufferedReader br.readLine(); Allgemeine Java-Themen 22
G getFilePointer in BufferedReader? Allgemeine Java-Themen 2
D (BufferedReader) inLine() "verschluckt" zeilen ? Allgemeine Java-Themen 2
M BufferedReader.read(char[] cbuf) liefert falsche Werte? Allgemeine Java-Themen 4
W Frage zu BufferedReader Allgemeine Java-Themen 2
conan2 BufferedReader.readLine() von anderem Thread aus beenden Allgemeine Java-Themen 4
K Wie kann ich einen BufferedReader beschleunigen? Allgemeine Java-Themen 4
N readLine() von BufferedReader hält das Programm fest/auf! Allgemeine Java-Themen 10
B while mit BufferedReader beenden Allgemeine Java-Themen 5
F Zu große Werte beim byteweisen Lesen mit BufferedReader.read Allgemeine Java-Themen 5
S BufferedReader problem Allgemeine Java-Themen 11
D BufferedReader in image umwandeln Allgemeine Java-Themen 3
M BufferedReader input - hängt sich auf Allgemeine Java-Themen 4
C Probleme mit URL und BufferedReader Allgemeine Java-Themen 6
C BufferedReader oder DataInputStream Allgemeine Java-Themen 4
M Store a String in a BufferedReader Allgemeine Java-Themen 2
X Input/Output InputStream/Scanner(System.in) read()/hasNextLine() block unterbrechen Allgemeine Java-Themen 7
krgewb Problem mit Umlauten und Eszett bei InputStream Allgemeine Java-Themen 3
W Mal ein paar generelle Fragen zu InputStream und OutputStream Allgemeine Java-Themen 4
L Input/Output InputStream öffnen? Allgemeine Java-Themen 12
P Input/Output Inputstream verhält sich verschieden Allgemeine Java-Themen 9
R Inputstream lesen mit Pointer Allgemeine Java-Themen 0
M InputStream auslesen Allgemeine Java-Themen 1
M String aus InputStream Allgemeine Java-Themen 3
B BufferedWriter in InputStream oder Zeichen-Stream in Byte-Stream Allgemeine Java-Themen 5
P Scanner als Inputstream für Java Prozess Allgemeine Java-Themen 4
E POI-InputStream selber wählen Allgemeine Java-Themen 2
S RandomAcessFile das einen InputStream wrappt..? Allgemeine Java-Themen 2
M Umwandlung ByteArrayOutputStream in InputStream Allgemeine Java-Themen 5
1 InputStream hängt Allgemeine Java-Themen 4
H Input/Output InputStream: 32-Bit-Ganzzahl (DWORD) binär lesen Allgemeine Java-Themen 5
D Datentypen Reader/InputStream wiederverwenden? Allgemeine Java-Themen 11
K Inputstream -> Bilder Allgemeine Java-Themen 23
1 InputStream liest die letzte Zeile nicht ein Allgemeine Java-Themen 2
J Java Datei aus FTP in ein INputstream Allgemeine Java-Themen 2
J InputStream Zip-File Allgemeine Java-Themen 3
F ImageIO cant create InputStream Allgemeine Java-Themen 9
S InputStream "weiterleiten" Allgemeine Java-Themen 12
T Integer aus InputStream lesen Allgemeine Java-Themen 3
T Undwandlung eines String in einen InputStream? Allgemeine Java-Themen 3
M Selbst geschriebener InputStreamReader über einen beliebigen InputStream Allgemeine Java-Themen 4
T OutputStream to InputStream Allgemeine Java-Themen 8
S von OutputStream in InputStream schreiben ohne das es blockiert..? Allgemeine Java-Themen 2
reibi BufferedImage nach InputStream Allgemeine Java-Themen 10
R InputStream zweimal lesen Allgemeine Java-Themen 2
G InputStream und File Allgemeine Java-Themen 11
B InputStream zu URL umwandeln Allgemeine Java-Themen 2
F Teile vom InputStream schreiben Allgemeine Java-Themen 9
J InputStream aus URL funktioniert nicht Allgemeine Java-Themen 7
H InputStream Problem mit externem Kommandozeilenprogramm Allgemeine Java-Themen 2
W InputStream öfters nutzen Allgemeine Java-Themen 9
R The mark method of InputStream does nothing. Allgemeine Java-Themen 4
V String oder doch InputStream? Allgemeine Java-Themen 9
A Inputstream in Outputstream umleiten Allgemeine Java-Themen 7
Nils_Langner InputStream soll sich bei neuen Daten melden Allgemeine Java-Themen 2
R InputStream - seltsamer Output Allgemeine Java-Themen 2
S java.io.InputStream.read(byte[] b) überschreiben Allgemeine Java-Themen 33
N InputStream erst ab gegebener Position Allgemeine Java-Themen 4
R InputStream Allgemeine Java-Themen 5
G InputStream kopieren? Allgemeine Java-Themen 6
D Inputstream aus StringBuffer Allgemeine Java-Themen 3
G inputstream() to imageicon() Allgemeine Java-Themen 7
D Durch OutpustStream und InputStream dateien in eine jar sch Allgemeine Java-Themen 3
G aus String einen InputStream erstellen Allgemeine Java-Themen 2
C Wie kann man im InputStream nach einer Zeichenkette suchen? Allgemeine Java-Themen 4
R Aus InputStream wieder eine Datei erzeugen? Allgemeine Java-Themen 2
N String als Inputstream Allgemeine Java-Themen 4

Ähnliche Java Themen


Oben