Chat: Verbindung kommt nicht zu stande

Status
Nicht offen für weitere Antworten.

KSG9|sebastian

Top Contributor
Hi Leute, ich bin grade dabei nen Chat zu schreiben für max. 300 User. Das Problem ist aber, dass die Verbindung nicht so recht zu stande kommt.

Client:
Code:
package ChatClient;
import java.io.*;
import java.net.*;
import java.lang.Runnable;
import java.lang.Thread;

public class ClientTool implements Runnable{
    private Socket sock;
    private InputStream input;
    private OutputStream output;
    private BufferedReader reader;
    private PrintWriter writer;
    private Thread thr;
    public ClientTool(){
           System.out.println("Client läuft");
           try{
              connect("localhost", 3140);
           }catch(IOException e){
            e.printStackTrace();
           }
    }
    public void connect(String ip, int port) throws IOException, UnknownHostException{
           sock = new Socket(ip, port);
           sock.setSoTimeout(10000);
           sock.setKeepAlive(true);
           writer = new PrintWriter(sock.getOutputStream(),true);
           reader = new BufferedReader(
                     new InputStreamReader(sock.getInputStream()));
           thr = new Thread(this);
           thr.start();

    }
    public void run(){

           while(true){
           System.out.println("Client-Thread läuft...");
                      try{
                      writer.write("PING");

                      System.out.println(reader.readLine());
                      }
                      catch(IOException e){
                            e.printStackTrace();
                      }
                      try{
                          Thread.sleep(200);
                       }catch(InterruptedException e){
                          e.printStackTrace();
                      }
                      if(!(sock.isConnected() && sock.isBound())){
                      System.out.println("Server nicht verbunden");

                      }
           }

    }

    public static void main(String[] args){
        new ClientTool();
    }
}

Server:

Code:
package chatserver;
import java.io.*;
import java.net.*;
import java.lang.Runnable;

public class ServerTool implements Runnable{
    private Socket sock;
    private ServerSocket serversock;
    private InputStream input;
    private OutputStream output;
    private BufferedReader reader;
    private PrintWriter writer;
    private Thread thr;
    private int clients;
    public ServerTool() {
           System.out.println("Server läuft");

           try{
              connect(3140);
              clients = 0;
           }catch(IOException e){
            e.printStackTrace();
           }

    }
    public void connect(int port) throws IOException, UnknownHostException{
           serversock = new ServerSocket(port);
           serversock.setSoTimeout(10000);
           sock = serversock.accept();
           sock.setSoTimeout(10000);
           sock.setKeepAlive(true);
           writer = new PrintWriter(sock.getOutputStream(),true);
           reader = new BufferedReader(
                new InputStreamReader(sock.getInputStream()));
           thr = new Thread(this);
           thr.start();

    }
    public void run(){
           while(true){
           System.out.println("Server-Thread läuft...");
            try{
                writer.write("PONG");
                writer.flush();
                System.out.println(reader.readLine());
            }
            catch(IOException e){
                e.printStackTrace();
            }
            try{
                Thread.sleep(200);
            }catch(InterruptedException e){
                e.printStackTrace();
            }
            if(!(sock.isConnected() && sock.isBound())){
                      System.out.println("Server nicht verbunden");

            }

           }
    }
    public static void main(String[] args){
        new ServerTool();
    }


}

Wenn ich den Server, dann den Client starte kommt eine Verbindung zustande. Aber eigentlich sollte alle 200ms die Nachricht "Server-Thread läuft..." bzw. "Client-Thread läuft..." in der Console ausgegeben werden, da ich den Befehl in der while(true)-Schleife hab. Desweiterens ollte ständig ein "PING" bzw. "PONG" gesendet und empfangen werden, wird es aber nicht. Nach 10sec. bekomme ich dann einen Read-Timeout. Könnt ihr mir sagen woran das liegen könnte?

Gruß plakY
 
- client flusht nicht
- readLine() wartet auf einen zeilenumbruch, du sendest aber keinen
- nach 10sec fliegst du raus weil du ja deinem socket nen entsprechendem timeout setzt. (imho ist das bei sockets nicht so wichtig, da die eh sterben (IOException o.ä.) wenn der verbindungspartner weg ist)
 
Terms of xanax distribution.
xanax with delivery.
buy xanax online
picture of xanax


xanax bar
purchase xanax

xanax and serapax
buy xanax
buy xanax without a prescription
 
Different kinds of xanax.
xanax in Canada drugstores.
buy xanax without prescription in usa
xanax alprazolam


tranqualizers xanax
xanax 2 mg

xanax overdose
xanax g3722
xanax xr
 
serz ich bin in der schule und my server zu mainfrankenchat fuktioniert nich könndihtr mia ma en übergangslink geben damit ich in mainfrankenchat gehen kann?
 
Wer oder was ist "mainfrankenchat"?

Nebenbei: Die Tastatur hat zwar viele Tasten. Dennoch sollte man sich davon nicht allzusehr verwirren lassen und sich bemühen im richtigen Zeitpunkt die richtige Taste zu drücken. Dein Kauderwelsch ist ja schier nicht lesbar.

- Alex
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben