//Questo programma lancia il Server sul webserver che aspetta la //richiesta di connessione dall'applet Gilotalk per attivare la talk import java.net.ServerSocket; import java.net.Socket; import java.net.InetAddress; import java.io.*; import java.util.Date; class ServerGilotalk { public static void main(String args[]) { int port = 5528; try { // create the server socket ServerSocket readServer = new ServerSocket(port); InetAddress iadd = readServer.getInetAddress(); String hname = iadd.getHostName(); System.out.println("Server Socket created on " +hname+ " to port " +port); System.out.println("Waiting for a connection..."); // wait for a connection Socket connection = readServer.accept(); InetAddress clientaddr = connection.getInetAddress(); Date date = new Date(); System.out.println("\nAccepted connection with " + clientaddr.getHostName() + "\n" + date.toString()); // set up the streams InputStream inStream = connection.getInputStream(); BufferedReader dis = new BufferedReader(new InputStreamReader(inStream)); BufferedReader sis = new BufferedReader(new InputStreamReader(System.in)); OutputStream outStream = connection.getOutputStream(); PrintWriter ps = new PrintWriter(outStream,true); System.out.println("\nReading the guest name"); //read the guest name String guest = dis.readLine(); if (guest.startsWith("~Gilo-Stop~")) { System.out.println("\nGuest's browser has fallen down\n"); System.exit(1); } System.out.println("\nGuest name is " + guest); ps.println("OK " + guest + ", I'll be on line soon, you can send me your first message."); ps.flush(); // while input does not equal 'exit' output to socket boolean done = false; while (!done) { String line = dis.readLine(); if (!line.startsWith("~Gilo-Stop~")) { System.out.println(guest + ">\n" + line); System.out.println("Gilo> "); String mine = sis.readLine(); ps.println(mine); ps.flush(); } else done = true; } System.out.println("\n"+guest+" has closed the connection.\n"); // close the server readServer.close(); } catch (Exception e) { System.out.println("\nThe client has closed the connection.\n"); e.printStackTrace(); System.exit(1); } } }