Nada

 

Server på egna datorn

(laboration 3 - Sten, sax, påse)

Programmet i labb 3 körs mot en server. Här finns serverprogrammet. Ifall servern är nere kan ni starta serverprogrammet på den egna datorn.

Server

Om du vill köra en egen server så går det bra att spara ned koden ovan på ditt eget konto. Sen kompilerar man och kör såhär:

javac Server4712.java
java Server4712
Servern kommer nu köra för all framtid och stå och vänta på att folk vill spela sten, sax och påse. När du är klar med din server måste du själv stänga av den. Det gör man genom att trycka Ctrl-C (Control-knappen och bokstaven c samtidigt) som inmatning till serverprogrammet (alltså i det terminalfönster där du startade servern).

I vissa labbsalar kör alla studenter på samma dator, vilket kan ge lite problem för sten, sax och påse-servern. Bara ett program i taget får använda en viss port, vilket servern gör. Om någon annan student redan har startat en server som använder samma port som din server vill använda kommer din server inte att få göra det. Du kan i och för sig använda den personens server då, en server kan spela med många personer samtidigt. Men eftersom den andra studenten kanske blir klar före dig och stänger av sin server så är det bäst att ha en egen server. Då är det bra om alla har ett eget portnummer. Du ändrar portnummer till din server genom att byta "4712" mot något annat portnummer på raden:

ServerSocket sock = new ServerSocket(4712,100);
i serverkoden. Nummer lägre än 1000 får du normalt inte använda på en Unixdator, men i övrigt kan du välja ganska fritt, till exempel 1717:
ServerSocket sock = new ServerSocket(1717,100);

Klient

När du vill spela med en server på din egen dator så behöver du också ändra lite i klienten. Koden för att koppla upp sig mot servern ser i enkelt utförande ut såhär:

  try {
     Socket socket=new Socket("my.nada.kth.se",4712);
     BufferedReader in=new BufferedReader(new InputStreamReader(
                           socket.getInputStream()));
     PrintWriter ut=new PrintWriter(socket.getOutputStream());
     ut.println("Charlotta"); ut.flush();
     System.out.println(in.readLine());
  }
Här försöker klienten prata med en server på datorn "my", och port nummer 4712. Om du byter "my.nada.kth.se" mot "localhost" så kommer klienten att prata med en server på den egna datorn. Glöm inte att byta till samma portnummer som du ändrade din servers portnummer till också.
  try {
     Socket socket=new Socket("localhost",1717);
     BufferedReader in=new BufferedReader(new InputStreamReader(
                           socket.getInputStream()));
     PrintWriter ut=new PrintWriter(socket.getOutputStream());
     ut.println("Charlotta"); ut.flush();
     System.out.println(in.readLine());
  }

Sidansvarig: <ann@nada.kth.se>
Senast ändrad 9 mars 2009
Tekniskt stöd: <webmaster@nada.kth.se>