![]() |
razred Socket služi za pisanje omrežnih odjemalcev, ki se lahko priključijo na nek strežnik in se z njim pogovarjajo; |
![]() |
Java podpira tudi t.i. UDP oz. datagramske povezave z DatagramSocket, ki pa jih ne bomo posebej omenjali; |
Primer odjemalca, ki se priključi na strežnik,
strežniku pošilja, kar tipka odjemalec in odjemalcu izpisuje, kar strežnik
vrača. Programu damo dva arguenta; ime računalnika, ter vrata na katera
naj se poveže.
import java.io.*; import java.net.*; public class test { public static void main(String[ ] args) throws IOException { Socket echoSocket = null; PrintWriter out = null; BufferedReader in = null; String line; if (args.length!=2) { System.err.println("Usage: test machine_name port_number!"); System.exit(1); } try { echoSocket = new Socket(args[0], Integer.parseInt(args[1])); // vzpostavimo povezavo na računalnik in vrata out = new PrintWriter(echoSocket.getOutputStream(), true); // tok za pisanje in = new BufferedReader(new InputStreamReader(echoSocket.getInputStream())); // tok za branje } catch (UnknownHostException e) { System.err.println("Don't know about host: stoned."); System.exit(1); } catch (IOException e) { System.err.println("Couldn't get I/O for the connection to: stoned."); System.exit(1); } BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in)); // beremo iz std. vhoda String fromUser, fromServer; while ((fromServer = in.readLine()) != null) { // beremo kar strežnik pošilja System.out.println("Server: " + fromServer); if (fromServer.equals("Bye.")) break; fromUser = stdIn.readLine(); if (fromUser != null) { out.println(fromUser); // pošljemo strežniku } } out.close(); in.close(); stdIn.close(); echoSocket.close(); // poleg tokov zapremo še Socket posebej } }