Avatar billede bolmer Nybegynder
14. september 2005 - 16:31 Der er 6 kommentarer og
1 løsning

Simpelt server klient program?

Hvordan simulere man en server og en klient på den samme computer? Jeg har følgende kode for en klient og en server:

import java.io.*;
import java.net.*;
public class TCPClient {


    /**
    * @param args
    */
    public static void main (String[] args) throws Exception {
        String sentence;
        String modifiedSentence;
        BufferedReader inFromUser = new BufferedReader(
                new InputStreamReader(System.in));
       
        Socket clientSocket = new Socket("hostname", 6789);
        DataOutputStream outToServer = new DataOutputStream(
                clientSocket.getOutputStream());
        BufferedReader inFromServer =
            new BufferedReader(new InputStreamReader(
                    clientSocket.getInputStream()));
       
        sentence = inFromUser.readLine();
        outToServer.writeBytes(sentence + '\n');
        modifiedSentence = inFromServer.readLine();
        System.out.println("FROM SERVER: " +
                modifiedSentence);
        clientSocket.close();
       

    }

}




import java.io.*;
import java.net.*;
public class TCPServer {
    /**
    * @param args
    */
    public static void main(String[] args) throws Exception {
        String clientSentence;
        String capitalizedSentence;
        ServerSocket welcomeSocket = new ServerSocket(6789);
        //System.out.println(welcomeSocket.getInetAddress());

       
        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);
        }

       

    }


Som det kan ses kontakter klienten "hostname" på port 6789. Men hvad skal man udflyde "hostname" med? Jeg ved ikke hvorfor en en IP adresse min computer skal have. Og hvis det skal fungere korrekt skal der vel være en IP adresse til klienten og en anden IP adresse til serveren.

Håber nogen kan hjælpe
Avatar billede simonvalter Praktikant
14. september 2005 - 16:40 #1
de kan saktens begge køre på "localhost" så brug

localhost
127.0.0.1
eller den ip din maskine har fået tildelt.. f.eks 192.168.1.6
set det med start/kør > cmd.exe
skriv ipconfig
Avatar billede bolmer Nybegynder
14. september 2005 - 16:45 #2
Ok nu har jeg udskiftet "hostname" med "localhost". Jeg har dernæst kørt serveren efterfulgt af klienten, men der sker stadig ikke noget. Jeg troede man blev bedt om at indtaste noget som dernæst blev vist med store bogstaver.
Avatar billede simonvalter Praktikant
14. september 2005 - 16:53 #3
det virker som det skal... bare prøv og tast noget.
Avatar billede bolmer Nybegynder
14. september 2005 - 16:54 #4
Hehe det har du ret i, du skal have point.
Avatar billede simonvalter Praktikant
14. september 2005 - 16:58 #5
ok
Avatar billede bolmer Nybegynder
14. september 2005 - 16:59 #6
ups lige en ting til, når jeg prøver at køre programmet igen så får jeg en fejl:

Exception in thread "main" java.net.BindException: Address already in use
    at java.net.PlainSocketImpl.socketBind(Native Method)
    at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:331)
    at java.net.ServerSocket.bind(ServerSocket.java:318)
    at java.net.ServerSocket.<init>(ServerSocket.java:185)
    at java.net.ServerSocket.<init>(ServerSocket.java:97)
    at clientserver.TCPServer.main(TCPServer.java:11)


Det virker som om adressen kun kan bruges én gang. Findes der en måde hvor man kan "slukke" for den?
Avatar billede simonvalter Praktikant
14. september 2005 - 17:02 #7
det er porten der er i brug. hvis du kører i en IDE så check lige om programmet ikke stadig kører i en anden konsol. jeg ved ikke lige hvad det hedder i din men vil gætte på terminate,disconnect,close...
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