![]() |
Za implementacijo strežnika v Javi uporabljano razred ServerSocket; |
![]() |
najpomembnejša metoda razreda ServerSocket je accept, ki povzroči, da začne strežnik poslušati na nekih vratih, vse dokler se nanje ne priključni nek odjemalec. Ko se odjemalec priključi, accept vrne ročico na objekt Socket, ki lahko potem služi za komunikacijo z odjemalcem; |
Primer preprostega strežnika, na katerega
se lahko priključimo z odjemalcem iz prejšnjega razdelka;
import java.net.*; import java.io.*; public class KnockKnockServer { public static void main(String[] args) throws IOException { ServerSocket serverSocket = null; try { serverSocket = new ServerSocket(4444); // strežnik bo poslušal na vratih 4444 } catch (IOException e) { System.err.println("Could not listen on port: 4444."); System.exit(1); } Socket clientSocket = null; try { clientSocket = serverSocket.accept(); // strežnik začne poslušati na vratih 4444 } catch (IOException e) { System.err.println("Accept failed."); System.exit(1); } PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true); // odjemalec je priključen; BufferedReader in = new BufferedReader( // strežnik odpre tokova za branje/pisanje new InputStreamReader( clientSocket.getInputStream())); String inputLine; out.println("Welcome, my master. What is your wish?"); // začetno sporočilo while ((inputLine = in.readLine()) != null) { // beremo dokler odjemalec ne reče quit if (inputLine.equals("quit")) break; out.println("Your wish is my command. I shall immediately " + inputLine); } out.close(); in.close(); clientSocket.close(); // obe vtičnici zapremo posebej serverSocket.close(); } }