Avatar billede mik28 Seniormester
19. oktober 2004 - 10:58 Der er 7 kommentarer og
1 løsning

Socket/Inputstream

Hej Eksperter,

Jeg har det her lille program kørende. Det er meningen at det skal skrive det som det modtager via TELNET ud på skærmen. Det virker også første gang man sender noget men så kommer der ikke mere. Hvad er der galt?


import java.io.*;
import java.net.*;
    class Schat {
      public static void main(String argv[]) throws Exception
          {
            String clientSentence;
            String capitalizedSentence;
            ServerSocket welcomeSocket = new ServerSocket(6789);

            while(true) {
                Socket connectionSocket = welcomeSocket.accept();
                BufferedReader inFromClient =
                  new BufferedReader(new InputStreamReader(
                      connectionSocket.getInputStream()));
                DataOutputStream outToClient =
                  new DataOutputStream(
                      connectionSocket.getOutputStream());
                clientSentence = inFromClient.readLine();
                capitalizedSentence =
                      clientSentence.toUpperCase() + '\n';
                outToClient.writeBytes(capitalizedSentence);
                System.out.println(capitalizedSentence);
            }
          }
    }
Avatar billede arne_v Ekspert
19. oktober 2004 - 11:03 #1
Ovenstående kode læser kun 1 linie fra hver connection.
Avatar billede arne_v Ekspert
19. oktober 2004 - 11:05 #2
clientSentence = inFromClient.readLine();
                capitalizedSentence =
                      clientSentence.toUpperCase() + '\n';
                outToClient.writeBytes(capitalizedSentence);
                System.out.println(capitalizedSentence);
->

while((clientSentence = inFromClient.readLine()) != null) {
                capitalizedSentence =
                      clientSentence.toUpperCase() + '\n';
                outToClient.writeBytes(capitalizedSentence);
                System.out.println(capitalizedSentence);
}
Avatar billede arne_v Ekspert
19. oktober 2004 - 11:05 #3
Jeg ville iøvrigt nok bruge PrintWriter fremfor DataOutputStream !
Avatar billede mik28 Seniormester
19. oktober 2004 - 11:18 #4
okay, tak
Avatar billede arne_v Ekspert
19. oktober 2004 - 11:36 #5
og et svar
Avatar billede mik28 Seniormester
19. oktober 2004 - 13:55 #6
Det er meningen at det skal kører krypteret. Jeg er med på at jeg skal lave en keystore i java, men hvordan får jeg bygget det ind i programmet?

ServerSocket welcomeSocket = new ServerSocket(6789);
Avatar billede arne_v Ekspert
19. oktober 2004 - 14:44 #7
Du behøver kun keystore, hvis du skal bruge private public key teknologi.

Normal symmetrisk kryptering er lige ud af landevejen.

Kryptering er under alle omstændigheder byte[] <-> byte[] d.v.s. at det
ligger over sockjet niveau.

Medmindre du vælger at satse på SSL !
Avatar billede mik28 Seniormester
19. oktober 2004 - 16:09 #8
Det var egenlig min mening at satse på ssl :-) Jeg må hellere kigge noget mere på det også vende tilbage :-)
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