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