Avatar billede snot Nybegynder
12. november 2001 - 13:02 Der er 5 kommentarer og
1 løsning

KLient/server fejl.

Hej Eksperter;

Jeg sidder her og roder med en simpelt chat i java. Min maskine kører server på port 8889; og klienten tilslutter fint.

Efter at klienten har skrevet én besked og serveren har svaret går klienten ned ved afsendelse af anden besked.

Følgende fejl fås:
IO: socket write error (code=10053)

Klientens kode:
import java.net.*;
import java.io.*;
import javax.swing.*;

public class ChatClient {
  public static void main(String args[]) {
    Socket s = null;
    String input = \"\";
    input = JOptionPane.showInputDialog(null, \"\", \"Input\", JOptionPane.PLAIN_MESSAGE);
    System.out.println(\"Sendt: \" + input);

    try {

      int serverPort = 8889;
      s = new Socket(\"127.0.0.1\", serverPort);

      DataInputStream in = new DataInputStream(s.getInputStream());
      DataOutputStream out = new DataOutputStream(s.getOutputStream());

      while (!input.equalsIgnoreCase(\"q\")) {
        out.writeUTF(input);
        String data = in.readUTF();

        System.out.println(\"Modtaget: \" + data);
        input = JOptionPane.showInputDialog(null, \"Input\");
        System.out.println(\"Sendt: \" + input);
      }
    }
    catch (UnknownHostException e) {
      System.out.println(\"Sock: \" + e.getMessage());
    }
    catch (EOFException e) {
      System.out.println(\"EOF: \" + e.getMessage());
    }
    catch (IOException e) {
      System.out.println(\"IO: \" + e.getMessage());
    }
    finally {
      if (s != null) {
        try {
          s.close();
        }
        catch (IOException e) {
          System.out.println(\"IO: \" + e.getMessage());
        }
      }
    }
  }
}





Serverens kode:
import java.net.*;
import java.io.*;
import javax.swing.*;

public class ChatServer {
  public static void main(String args[]) {

    try {
      int serverPort = 8889;
      ServerSocket lytSocket = new ServerSocket(serverPort);

      while(true) {
        Socket klientSocket = lytSocket.accept();
        Connection c = new Connection(klientSocket);
      }
    }
    catch (IOException e) {
      System.out.println(\"Listen: \" + e.getMessage());
    }
  }
}

class Connection extends Thread {
  DataInputStream in;
  DataOutputStream out;
  Socket klientSocket;

  public Connection(Socket enKlientSocket) {
    try {
    klientSocket = enKlientSocket;
      in = new DataInputStream(klientSocket.getInputStream());
      out = new DataOutputStream(klientSocket.getOutputStream());
      this.start();
    }
    catch (IOException e) {
      System.out.println(\"Forbindelse: \" + e.getMessage());
    }
  }
  public void run() {
    try {  // an Echo Server
      String data = in.readUTF();
      System.out.println(\"Modtaget: \" + data);
      String test = JOptionPane.showInputDialog(null, \"TExt:\");
      System.out.println(\"Sendt: \" + test);
      out.writeUTF(test);



    }
    catch (EOFException e) {
      System.out.println(\"EOF: \" + e.getMessage());
    }
    catch (IOException e) {
      System.out.println(\"IO: \" + e.getMessage());
    }
    finally {
      try {
        //if (klientSocket != null) {
          klientSocket.close();
        //}
      }
      catch (IOException e) {
        /*
          CLOSE KUNNE IKKE UDFØRES !!!!
        */
      }
    }
  }
}


Jeg kan selv regne ud at jeg på en eller anden måde skal have nulstillet mine in/out-put streams ? men hvordan og ja HVORFOR ??

/SNoT
Avatar billede hbhansen Nybegynder
12. november 2001 - 13:36 #1
Prøv at erklærer Output og Input en gang i konstrkutøren af Client klassen, og herefter bruge referencerne i try catcth, har ikke selv prøver det.
Jeg har selv lavet et client server program der virker, jeg kan sende det til dig pr. email hvis du har lyst !
Avatar billede snot Nybegynder
12. november 2001 - 17:38 #2
Syntes umiddelbart ikke at dit forslag ændrer noget....

har snart rodet med ALT !!!

men du må gerne maile mig dit program...

SNoT -> haggren@hotmail.com

Avatar billede hbhansen Nybegynder
13. november 2001 - 12:16 #3
Ok, jeg vil gerne maile dig det !! Men giver det ikke lidt point ?
Avatar billede snot Nybegynder
13. november 2001 - 19:47 #4
selvfølgelig....
hvis det løser mit problem får du alle pointsne !!?!?!

:) SNoT !
Avatar billede hbhansen Nybegynder
14. november 2001 - 12:12 #5
Ok, kontakter dig pr. mail iaften, så kan jeg hjælp dig igennem det !
Avatar billede snot Nybegynder
07. januar 2002 - 14:50 #6
Undskyld jeg ikke har svaret...

Dit program virker dejligt, og jeg har luret meget af koden.... Dejligt

Takker....
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester