/* * * jutuka klient Grupp: märt, martin, kaido, pjotr * Aeg : 21. okt 2003 * */ import java.io.*; import java.net.*; import java.awt.*; import java.awt.event.*; import java.applet.*; public class Klient extends Applet implements ActionListener, Runnable { /////////////////// Seaded ///////////////// String aadress="192.168.0.1"; // seda tuleb kindlasti muuta :) int port=2003; /////////////////////////////////////////// PrintWriter valja=null; BufferedReader sisse=null; Button bSaada=new Button("Saada"); Button bMenyy=new Button("Menüü"); Button bValja=new Button("Välja"); Button bYhenda=new Button("Ühenda"); TextField sisestus=new TextField(30); TextArea teated=new TextArea("",20,15,1); Label lSisestus=new Label("Teade: "); Label lPealkiri=new Label("Avalik vestlus: "); Panel alumineOsa=new Panel(new GridLayout(3,1)); Panel nupud=new Panel(new GridLayout(1,4)); // Ühenduse loomine public boolean Loo_Yhendus() { try { try{ valja.println(".quit"); teated.append("Hmm: ilus oleks olnud eelmine ühendus enne ära katkestada!\nKatkestan ühenduse ...\nAlustan uue ühenduse loomist ...\n"); } catch(Exception ee) {} Socket pistik=new Socket(aadress, port); valja=new PrintWriter(pistik.getOutputStream(), true); sisse=new BufferedReader(new InputStreamReader(pistik.getInputStream())); new Thread(this).start(); return true; } catch(Exception e) { return false; } } public Klient() { try { if (Loo_Yhendus()) { teated.append("Ühenduse loomine õnnestus ("+aadress+": "+port+")\n"); } else { throw new Exception(); } } catch(Exception e) { teated.append("PROBLEEM:\nEi suuda luua ühendust serveriga!\n"); } setLayout(new BorderLayout()); // nuppude osa nupud.add(bSaada); nupud.add(bMenyy); nupud.add(bYhenda); nupud.add(bValja); // akna alumine osa alumineOsa.add(lSisestus); alumineOsa.add(sisestus); alumineOsa.add(nupud); add(alumineOsa, BorderLayout.SOUTH); add(lPealkiri, BorderLayout.NORTH); add(teated, BorderLayout.CENTER); bValja.addActionListener(this); bSaada.addActionListener(this); bMenyy.addActionListener(this); bYhenda.addActionListener(this); sisestus.addActionListener(this); } public void run() { try { String rida; while(true) { rida=sisse.readLine(); if (rida.equals(".quit")) { valja.close(); sisse.close(); teated.append("\n-----------------------\nÜhendus serveriga ("+aadress+": "+port+") on katkenud!\nLõpp\n"); break; } // tühjad read on keelatud *[:)] if (rida.length()>0) teated.append(rida+"\n"); } } catch(Exception e) { teated.append("Viga: ühendus on katkendud!\n"); } } public void actionPerformed(ActionEvent e) { try { if (e.getSource()==bValja) { System.exit(0); } if (e.getSource()==bSaada || e.getSource()==sisestus) { valja.println(sisestus.getText()); sisestus.setText(""); } if (e.getSource()==bYhenda) { if (Loo_Yhendus()) { teated.append("Ühenduse loomine õnnestus ("+aadress+": "+port+")\n"); } } if (e.getSource()==bMenyy) { valja.println(".menu"); } } catch(Exception eks) { teated.append("VIGA: Tegevus katkestatud: puudub ühendus serveriga!\n"); } } public static void main(String args[]) throws IOException { Frame aken=new Frame("Jutukas"); aken.add(new Klient()); aken.setSize(550,400); aken.setResizable(false); aken.setVisible(true); aken.addWindowListener(new Raamikuular()); } } class Raamikuular extends WindowAdapter { public void windowClosing(WindowEvent e) { System.exit(0); } }