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 Server4713.java
java Server4713
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. Om någon annan student redan har startat en server som använder port 4713 så kan du inte låta din server använda port 4713. Du kan i och för sig använda den personens server då, en server kan ju spela med många personer samtidigt. Men den andra studenten kan bli klar före dig och stänga av sin server och därför är det bäst att veta hur man gör sin egen, med eget portnummer. Ändra till ett eget servernummer genom att byta "4713" mot något annat portnummer på raden:

ServerSocket sock = new ServerSocket(4713,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",4713);
     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 4713. 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 3 april 2011
Tekniskt stöd: <webmaster@nada.kth.se>