Sockets -> BufferedReader Problem

Status
Nicht offen für weitere Antworten.

AlClemento

Neues Mitglied
Also mein Problem ist efinkelt. Sitz an dem Problem schon mehr als eine Woche. Detail am Rande: das soll Bomberman übers Netzwerk werden.

Auf der Client-Seite gibt es folgenedes:

ClientModule.java: Das Herzstück des Clients
Code:
package Client;

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

/**
 *
 * @author Clemens Rögner - dv20020456
 */
public class ClientModule extends Thread{
    private boolean run = true;
    private Socket sock;
    public BufferedReader in;
    public PrintWriter out;
    
    private TreeMap<String, ArrayList<msgListener>> msgL = new TreeMap<String, ArrayList<msgListener>>();
    
    public ClientModule(String host, int port, String name, String color) throws ConnectException{
        try {
          //Initialising
          sock = new Socket(host, port);
          in = new BufferedReader(new InputStreamReader(sock.getInputStream()));
          out = new PrintWriter(sock.getOutputStream());
          
          //waiting for "login data"
          String s = in.readLine();
          if(!s.equals("login data"))
              throw new ConnectException();
          
          //sending name and color
          send("login " + name + " " + color); 
          
          //waiting for ack "login ok". if "login bad" an Exception will e thrown
          s = in.readLine();
          if(s==null || !s.equals("login ok"))
              throw new ConnectException();
          this.start();
        }
        catch (UnknownHostException e) {
          throw new ConnectException("UnknownHostException - " + e);
        }
        catch (EOFException e) {
          throw new ConnectException("EOFException - " + e.getMessage());
        }    
        catch (IOException e) {
          throw new ConnectException("IOException - " + e);
        }
        finally {
            close();
        }
    }
    
    public void run() {
        //Listening Thread for receiving msg. only started, when Server sent "login ok"
        while(run) {
            //unimportant
        }
    }
    
    public boolean addMsgListener(String key, msgListener l) {
        //unimportant
        return true;
    }
    
    public boolean removeMsgListener(String key, msgListener l) {
        //unimportant
        return true;
    }
        
    public boolean send(String s) {                                             //sending Method
        if(s==null)
            return false;
        try{
            out.println(s);
            out.flush();
        }
        catch(Exception e) {
            close();
            return false;
        }
        return true;
    }
    
    public void close() {
        run = false;
        try {
            if(in != null) in.close();
            if(out != null) out.close();
            if(sock != null) sock.close();
        }
        catch(IOException e) {
          System.err.println("Fehler 2: " + e);
        }
    }

}

ClientConnect.java: So Connected man zum Server (ihr seht schon, ich war faul und hab mit dem Designer gearbeitet)
Code:
package Client;

import javax.swing.*;

/**
 *
 * @author  Clemens Rögner - dv20020456
 */
public class ClientConnect extends javax.swing.JFrame {
    private ClientModule server;
    
    /** Creates new form ClientConnect */
    public ClientConnect() {
        initComponents();
    }
    
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">                          
    private void initComponents() {
        jPanel1 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jPanel2 = new javax.swing.JPanel();
        jLabel2 = new javax.swing.JLabel();
        JTname = new javax.swing.JTextField();
        jPanel3 = new javax.swing.JPanel();
        jLabel3 = new javax.swing.JLabel();
        JCcolor = new javax.swing.JComboBox();
        jPanel4 = new javax.swing.JPanel();
        jLabel4 = new javax.swing.JLabel();
        JTip = new javax.swing.JTextField();
        jPanel5 = new javax.swing.JPanel();
        jLabel5 = new javax.swing.JLabel();
        JTport = new javax.swing.JTextField();
        jPanel6 = new javax.swing.JPanel();
        JBconnect = new javax.swing.JButton();
        jPanel7 = new javax.swing.JPanel();
        JLstatus = new javax.swing.JLabel();

        getContentPane().setLayout(new java.awt.GridLayout(7, 1));

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Bomberman - Connect");
        jLabel1.setText("Bomberman");
        jPanel1.add(jLabel1);

        getContentPane().add(jPanel1);

        jLabel2.setText("Name");
        jPanel2.add(jLabel2);

        JTname.setMinimumSize(new java.awt.Dimension(100, 19));
        JTname.setPreferredSize(new java.awt.Dimension(100, 19));
        jPanel2.add(JTname);

        getContentPane().add(jPanel2);

        jLabel3.setText("Figur");
        jPanel3.add(jLabel3);

        JCcolor.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Blue", "Red", "Green", "Yellow" }));
        JCcolor.setPreferredSize(new java.awt.Dimension(100, 22));
        jPanel3.add(JCcolor);

        getContentPane().add(jPanel3);

        jLabel4.setText("Server");
        jPanel4.add(jLabel4);

        JTip.setText("127.0.0.1");
        JTip.setPreferredSize(new java.awt.Dimension(100, 19));
        jPanel4.add(JTip);

        getContentPane().add(jPanel4);

        jLabel5.setText("Port");
        jPanel5.add(jLabel5);

        JTport.setText("8000");
        JTport.setPreferredSize(new java.awt.Dimension(100, 19));
        jPanel5.add(JTport);

        getContentPane().add(jPanel5);

        JBconnect.setText("Connect");
        JBconnect.setPreferredSize(new java.awt.Dimension(100, 23));
        JBconnect.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                JBconnectActionPerformed(evt);
            }
        });

        jPanel6.add(JBconnect);

        getContentPane().add(jPanel6);

        JLstatus.setText("Fill in and Connect");
        jPanel7.add(JLstatus);

        getContentPane().add(jPanel7);

        pack();
    }
    // </editor-fold>                        

    private void JBconnectActionPerformed(java.awt.event.ActionEvent evt) {                                          
        if((JTname.getText() != null) && (JTip.getText() != null) && (JTport.getText() != null)) {
            try {
                server = new ClientModule(JTip.getText(), new Integer(JTport.getText()), JTname.getText(), JCcolor.getSelectedItem().toString());
                new ClientLounge(server);
                this.dispose();
            }
            catch(ConnectException ce) {
                JLstatus.setText("Error: " + ce);
            }
        }
        else {
            JLstatus.setText("Wrong Parameters!");
        }
    }                                         
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new ClientConnect().setVisible(true);
            }
        });
    }
    
    // Variables declaration - do not modify                     
    private javax.swing.JButton JBconnect;
    private javax.swing.JComboBox JCcolor;
    private javax.swing.JLabel JLstatus;
    private javax.swing.JTextField JTip;
    private javax.swing.JTextField JTname;
    private javax.swing.JTextField JTport;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JPanel jPanel5;
    private javax.swing.JPanel jPanel6;
    private javax.swing.JPanel jPanel7;
    // End of variables declaration                   
    
}

ClientLounge.java: das "Chat-Fenster":
Code:
/*
 * ClientLounge.java
 *
 * Created on 24. März 2006, 23:15
 */

package Client;

import javax.swing.*;

/**
 *
 * @author  Clemens Rögner - dv20020456
 */
public class ClientLounge extends javax.swing.JFrame {
    ClientModule server;
    DefaultListModel msg = new DefaultListModel();
    
    
    /** Creates new form ClientLounge */
    public ClientLounge(ClientModule server) {
        initComponents();
        this.server = server;
        this.setVisible(true);
        
        this.LImsg.setModel(msg);
        
        //Adding Listener für receiving Chat Messages
        server.addMsgListener("lounge", new msgHandler(){
            public void gotMsg(String[] paras) {
                if((paras.length>=3) && (paras[0].equals("msg"))) {
                    String m = "";
                    for(int i=2; i<paras.length; i++) {
                        m += paras[i];
                    }
                    msg.addElement(m);
                }
            }
        });
    }
    
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">                          
    private void initComponents() {
        LIplayer = new javax.swing.JList();
        Tmsg = new javax.swing.JTextField();
        LImsg = new javax.swing.JList();
        jMenuBar1 = new javax.swing.JMenuBar();
        MGame = new javax.swing.JMenu();
        MInfo = new javax.swing.JMenuItem();
        MDisconnect = new javax.swing.JMenuItem();
        MExit = new javax.swing.JMenuItem();
        MOptions = new javax.swing.JMenu();
        MUI = new javax.swing.JMenuItem();

        getContentPane().setLayout(new java.awt.BorderLayout(3, 3));

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Bomberman - Lounge");
        LIplayer.setPreferredSize(new java.awt.Dimension(100, 0));
        getContentPane().add(LIplayer, java.awt.BorderLayout.EAST);

        Tmsg.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                TmsgActionPerformed(evt);
            }
        });

        getContentPane().add(Tmsg, java.awt.BorderLayout.SOUTH);

        getContentPane().add(LImsg, java.awt.BorderLayout.CENTER);

        MGame.setText("Game");
        MInfo.setText("Server Info");
        MGame.add(MInfo);

        MDisconnect.setText("Disconnect");
        MGame.add(MDisconnect);

        MExit.setText("Exit");
        MGame.add(MExit);

        jMenuBar1.add(MGame);

        MOptions.setText("Options");
        MUI.setText("Ui Options");
        MOptions.add(MUI);

        jMenuBar1.add(MOptions);

        setJMenuBar(jMenuBar1);

        pack();
    }
    // </editor-fold>                        

    private void TmsgActionPerformed(java.awt.event.ActionEvent evt) {                                     
        if(server.send("lounge msg " + Tmsg.getText()))                         //Sending a chat-msg to the Server
            System.out.println("sending msg " + Tmsg.getText());
    }                                    
    
    
    
    // Variables declaration - do not modify                     
    private javax.swing.JList LImsg;
    private javax.swing.JList LIplayer;
    private javax.swing.JMenuItem MDisconnect;
    private javax.swing.JMenuItem MExit;
    private javax.swing.JMenu MGame;
    private javax.swing.JMenuItem MInfo;
    private javax.swing.JMenu MOptions;
    private javax.swing.JMenuItem MUI;
    private javax.swing.JTextField Tmsg;
    private javax.swing.JMenuBar jMenuBar1;
    // End of variables declaration                   
    
}

Die Server Seite:

BomberServer.java: Wartet auf neue Clients
Code:
package Server;

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

/**
 *
 * @author dv20020456
 */
public class BomberServer {
    public static int PORT = 8000;
    private static boolean running = false;
    
    /** Creates a new instance of BomberServer */
    public BomberServer() {
    }
    
    public static void main (String args[]) {
    ServerSocket listen = null;
    try {
      listen = new ServerSocket(PORT);
      listen.setSoTimeout(2000);
      printMsg("Server is running: " + listen);
      running = true;
      while(running) {
        try {
          //Waiting for Players
          Socket s = listen.accept();                                           
          System.out.println("new Player: " + s);
          
          //Creating new Player. Exchange of data and starting Listening Thread
          Player p = new Player(s);   
          
          //Adding Listener for Chat-Msg from Players
          p.addMsgListener("lounge", new msgHandler() {
            public void gotMsg(Player p, String[] paras) {
                printMsg("GOT MSG" );
                String s = " ";
                for(int i=0; i<paras.length; i++) {
                    s += paras[i] + " ";
                }
                Player.sendToAll("lounge msg " + p.name + s);
            }
          });
        }
        catch(SocketTimeoutException e) {}
      }
    }
    catch(IOException ioe) {
      System.out.println("Fehler:" + ioe.toString());
    }
    finally {
      try {
        if(listen != null) listen.close();
        System.out.println("Bye...");
      }
      catch(IOException e) {}
    }
  }
    
    public static void printMsg(String s) {
        System.out.println(s);
    }
    
    protected static void loungeMsg(Player p , String s) {
        Player.sendToAll("lounge msg " + p.name + " " + s);
    }
    
}

Player.java: baut die Verbindung auf. Erster Austausch von Daten.
Code:
/*
 * Player.java
 *
 * Created on 09. März 2006, 09:48
 *
 * To change this template, choose Tools | Options and locate the template under
 * the Source Creation and Management node. Right-click the template and choose
 * Open. You can then make changes to the template in the Source Editor.
 */

package Server;

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

/**
 *
 * @author dv20020456
 */
public class Player extends Thread{
    protected static TreeMap<String,Player> all = new TreeMap<String,Player>();
    protected TreeMap<String, ArrayList<msgListener>> msgL = new TreeMap<String, ArrayList<msgListener>>();
    
    protected Game g = null;
    protected String name;
    protected String color;
    private Socket s;
    private BufferedReader is = null;
    private PrintStream os = null;
    private boolean run = true;
    
    /** Creates a new instance of Player */
    public Player(Socket s) {
       this.s = s;
       try {
           is = new BufferedReader(new InputStreamReader(s.getInputStream()));
           os = new PrintStream(s.getOutputStream());
           
           //Ready for Receiving Data
           if(!send("login data")) {
               close();
           }
           
           //Waiting for Data
           String request = is.readLine();
           String[] log = request.split(" ");
           if(log.length == 3 && log[0].equals("login")) {                      //If Data-String ok
               if(!send("login ok")) {
                   close();
               }
               this.name = log[1];
               this.color = log[2];
           }
           else {
               if(!send("login bad")) {
               }
           }
       }
       catch(IOException ioe) {
        BomberServer.printMsg("Error: " + ioe);
        close();
       }
       catch(Exception e) {
          BomberServer.printMsg(e.toString());
          close();
       }
       
       //Adding Player to the List
       all.put(this.name, this);
       
       //Starting Thread
       this.start();
    }

    public void run() {
        try {
            while(true) {               
                String str = is.readLine();                                     //Bekomme immer "null"
                BomberServer.printMsg("got it: " + str);
            }
        }
        catch(IOException ioe) {
            BomberServer.printMsg("Error: " + ioe);
        }
        finally {
            close();
        }
    }
    
    protected boolean send(String s) {                                          //sending Method
        if(s==null)
            return false;
        try{
            os.println(s);
            os.flush();
        }
        catch(Exception e) {
            close();
            return false;
        }
        return true;
    }
    
    protected void doCmd(String s) {
        //unimportant
    }
    
    protected static void sendToAll(String s) {
        Iterator i = all.keySet().iterator();
        while(i.hasNext()) {
            all.get((String)i.next()).send(s);
        }
    }
    
    public boolean addMsgListener(String key, msgListener l) {
        //unimportant
        return true;
    }
    
    public boolean removeMsgListener(String key, msgListener l) {
        //unimportant
        return true;
    }
    
    private void close() {
      run = false;
      all.remove(this.name);
      try {
        if(is != null) is.close();
        if(os != null) os.close();
        if(s != null)  s.close();
      }
      catch(IOException e) {
          BomberServer.printMsg(e.toString());
      }
      finally {
          sendToAll("disconnect " + name);
      }
    }
  
}

Und nun eine kurze Erklärung was so passiert wenn ein Client sich auf den Server connected:
(Die Abläufe müsst ihr euch teilweise gleichzeitig vorstellen)

Server.BomberServer starten: wartet auf eingehende Verbindung

Client.ClientConnect starten: öffnet den Verbindungs-Dialog ->OK
Client.ClientConnect startet anschließend Client.ClientModule
Client.ClientModule öffnet Verbindung zum Server
Client.ClientModule wartet auf Initialisierungs-String vom Server

Server.BomberServer startet bei neuer Verbindung Server.PLayer
Server.Player sendet String um Name und Color vom Client zu erhalten

Client.ClientModule sendet Name und Color
Client.ClientModule wartet auf positive Antwort

Server.Player sendet positive Antwort
Server.Player startet sich selbst als Thread: der Thread wartet auf neue
Strings aus dem BufferedReader ( is.readline() )

Client.ClientModule erhält positive Antwort
Client.ClientModule öffnet Client.ClientLounge
Client.ClientLounge kann Texte aus einem Textfeld verschicken (ActionEvent)

Server.Player erhält keine Strings vom Client, sondern bekommt immer nur
null-Strings und blockt den Thread nicht


Hoffe ihr könnt mir helfen :!: Ansonsten wirds nichts mit ner guten Programmiernote :###

mfg, Alc


P.S.: Hoffe mein Thread is nicht überladen!
 

jPat

Bekanntes Mitglied
hi,

probier es doch mal mit einem

>> out = new PrintStream(server.getOutputStream());

und dann "out.println(s);" im Clienten

gruß
Patrick
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Jannn Socket Sockets an ein anderes Gerät weiterreichen? Netzwerkprogrammierung 8
JaXnPriVate Java HTTPS Server (Secure Sockets) Netzwerkprogrammierung 15
B Socket Bilder verschicken via Sockets. Heap-Problem. Netzwerkprogrammierung 2
E Socket Parameter über Sockets übergeben und auslesen ! Netzwerkprogrammierung 5
D Socket Verwirrung bei Sockets Netzwerkprogrammierung 1
E Mehrere Sockets Netzwerkprogrammierung 2
N Fragen zu Sockets Client Netzwerkprogrammierung 3
A Sockets Serialisierung Netzwerkprogrammierung 1
K Threads closen und Sockets schliessen Netzwerkprogrammierung 5
H Sockets oder HTTP- Methoden? Netzwerkprogrammierung 3
T Socket Bidirektionale Verbindung mit Sockets Netzwerkprogrammierung 8
P Problem mit Datagram-Sockets Netzwerkprogrammierung 2
C Socket Datagram-Sockets mit integrierter Message Queue? Netzwerkprogrammierung 2
M Problem Client - Server Sockets: .ready() wird nie true! Netzwerkprogrammierung 6
F Technologiewahl: Swing/RMI/Sockets Netzwerkprogrammierung 13
B Sockets, Threads & Plugins Netzwerkprogrammierung 7
T Verbindungsversuche über TCP Sockets von mehreren Threads führt zu Serverabsturz Netzwerkprogrammierung 2
D Mehrere Clients über Java-Sockets Netzwerkprogrammierung 13
F FTP Client mit Sockets - wann sagt der Server nichts mehr? Netzwerkprogrammierung 7
U Socket Abhören eines Sockets/Ports in extra Thread Netzwerkprogrammierung 8
M Socket Sockets Grundlage Netzwerkprogrammierung 25
I Socket HTTP Nachrichten über Sockets verschicken Netzwerkprogrammierung 2
D Socket Raw Sockets mit java.net.*? Bsp ICMP Netzwerkprogrammierung 7
H Komprimierte Sockets Netzwerkprogrammierung 4
V Verbindung zweier Rechner über das Internet mit Sockets Netzwerkprogrammierung 8
L Sockets übergeben Netzwerkprogrammierung 4
G NIO Sockets Architektur Problem Netzwerkprogrammierung 2
S Problem bzgl. Sockets / Server-Client-Struktur Netzwerkprogrammierung 3
B Socket Was muss man bei Sockets beachten? Netzwerkprogrammierung 10
N Socket Sockets und Events Netzwerkprogrammierung 11
A Programm umschreiben von Pipes auf Sockets Netzwerkprogrammierung 12
B Paralleler Dateitransfer: Ein Client - Mehrere Sockets? Wie connecten? Netzwerkprogrammierung 16
D RMI oder Sockets Netzwerkprogrammierung 4
P Sockets +Port Forwarding = Chaos Netzwerkprogrammierung 4
clupus Exception beim Schließen eines Sockets Netzwerkprogrammierung 6
Q Thread und Sockets... Netzwerkprogrammierung 2
G Sockets und HTTP: Ende des Datenempfangs erkennen Netzwerkprogrammierung 3
J Array oder Object über Sockets Netzwerkprogrammierung 8
O Sockets -- Einsieg Netzwerkprogrammierung 3
S Sockets und gzip Netzwerkprogrammierung 8
B Nachricht über Sockets kommt nicht an Netzwerkprogrammierung 8
data89 Sockets: ein alter Hut - für Euch - für mich nicht! Netzwerkprogrammierung 10
S Wiedereinmal Sockets ;-) Netzwerkprogrammierung 15
J Ascii / Unicode bei Sockets? Netzwerkprogrammierung 2
G Datagram-Sockets für UDP-Kommunikation Netzwerkprogrammierung 2
K "Ende eines Sockets" Netzwerkprogrammierung 9
A Sockets Netzwerkprogrammierung 10
feuervogel Sockets - Lokalen Port aber nicht IP bestimmen Netzwerkprogrammierung 3
C Einfacher Filedownload mit Sockets geht nicht für pdffiles Netzwerkprogrammierung 16
E Sockets, readLine() Netzwerkprogrammierung 7
M Sockets und InputStream Netzwerkprogrammierung 8
G Verbindung über Sockets Netzwerkprogrammierung 2
S zip-files über sockets übertragen Netzwerkprogrammierung 11
G immer wieder gleiche Sockets Netzwerkprogrammierung 2
V Suche Alternative zu Sockets Netzwerkprogrammierung 3
E Problem bei Sockets/InputStream über externe Klasse Netzwerkprogrammierung 5
A Datenverlust (zuviele Daten!) über Sockets Netzwerkprogrammierung 4
F Problem mit Threads und Sockets Netzwerkprogrammierung 3
B Übertragung via Sockets Netzwerkprogrammierung 12
C Dateien über Sockets versenden? Netzwerkprogrammierung 10
T Sockets Verständnisfrage: abwechelnd lesen-schreiben Netzwerkprogrammierung 4
S Habe ein Problem mit Sockets -> Client Server Netzwerkprogrammierung 2
G Strings über Sockets senden Netzwerkprogrammierung 5
P Probleme mit einem Array aus Sockets Netzwerkprogrammierung 2
Y buch: Netwerprogrammierung und Sockets Netzwerkprogrammierung 2
B Eigenes Protokoll über Sockets verschicken Netzwerkprogrammierung 4
P Welche Art von Sockets für ein Spiel? Netzwerkprogrammierung 3
C Sockets über Internet Netzwerkprogrammierung 10
K Applet - Servlet Kommunikation ohne Sockets Netzwerkprogrammierung 5
S Objekte zwischen Client und Server über Sockets senden Netzwerkprogrammierung 2
Z chat: wann http und wann sockets verwenden? Netzwerkprogrammierung 11
D Java Sockets Probs Netzwerkprogrammierung 4
N Verarbeitung nach Weiterleitung in Sockets Netzwerkprogrammierung 2
A Serialisierung über Sockets möglich? Netzwerkprogrammierung 3
M sockets (security) Netzwerkprogrammierung 2
C IRC CHAT auslesen -> Sockets/input und output Streams Netzwerkprogrammierung 9
M HTTP URLConnection + BufferedReader killt meine Umlaute Netzwerkprogrammierung 4
x46 byte[] über BufferedReader auslesen Netzwerkprogrammierung 18
X Socket [Anfänger] BufferedReader.readLine() lässt sich Zeit Netzwerkprogrammierung 1
B Socket BufferedReader.readLine() beenden ohne den Stream zu closen Netzwerkprogrammierung 7
C Socket BufferedReader.read(char[] buffer) blockiert unregelmäßig Netzwerkprogrammierung 3
J BufferedReader.ready() wird nicht true Netzwerkprogrammierung 10
A Socket BufferedReader.readLine() blockiert bis ein im Socket OutputStream was gesendet wird ... Netzwerkprogrammierung 9
V Socket BufferedReader interrupten? Netzwerkprogrammierung 10
B Multi-Threaded block bei BufferedReader.readLine() Netzwerkprogrammierung 8
S BufferedReader blockiert zu lange Netzwerkprogrammierung 4
P eine BufferedReader für alles ankommende Netzwerkprogrammierung 2
C 2 BufferedReader als Listener pro Socket (NICHT) möglich? Netzwerkprogrammierung 2
E BufferedReader.ready() immer false Netzwerkprogrammierung 8
R Mittels BufferedReader Objekte lesen? Netzwerkprogrammierung 5
C Kollision von ObjectInputStream und BufferedReader ? Netzwerkprogrammierung 6
O BufferedReader.readline kommt nicht zurück Netzwerkprogrammierung 7
F BufferedReader Socket Netzwerkprogrammierung 2
B BufferedReader.readLine() ließt nicht vollständig ! ? Netzwerkprogrammierung 5
J Vom BufferedReader lesen -> hängt ohne Fehler,ohne Except Netzwerkprogrammierung 2
I Socket Problem mit den WebSocket Antworten der Discord API Netzwerkprogrammierung 0
K Java Websocketserver Problem | Android to Pi Netzwerkprogrammierung 1
C RMI Produzent-Verbraucher-Problem - Code review Netzwerkprogrammierung 12
S Problem bei dem Bluetoothverbindungsaufbau Netzwerkprogrammierung 2
G Server-Client IO Problem Netzwerkprogrammierung 6

Ähnliche Java Themen

Neue Themen


Oben