import java.awt.*; import java.awt.event.*; import java.io.*; import java.net.*; public class JututoaKlient2 extends Panel implements ActionListener, Runnable{ TextField kirjutusrida=new TextField(); TextArea sisu=new TextArea(); TextField tfServeriNimi=new TextField("193.40.81.10"); TextField tfServeriPort=new TextField("3001"); Button yhendusNupp=new Button("Ühenda"); Panel yhendusPaneel=new Panel(new GridLayout(1, 2)); Socket sc; PrintWriter vorku; Soiduala1 soiduala; public JututoaKlient2(){ setLayout(new BorderLayout()); add(kirjutusrida, BorderLayout.SOUTH); kirjutusrida.addActionListener(this); add(sisu, BorderLayout.CENTER); sisu.setEditable(false); yhendusPaneel.add(tfServeriNimi); Panel yhendusAbiPaneel=new Panel(new GridLayout(1, 2)); yhendusAbiPaneel.add(tfServeriPort); yhendusAbiPaneel.add(yhendusNupp); yhendusNupp.addActionListener(this); yhendusPaneel.add(yhendusAbiPaneel); add(yhendusPaneel, BorderLayout.NORTH); } public void run(){ yhendusNupp.setEnabled(false); try{ BufferedReader vorgust=new BufferedReader( new InputStreamReader(sc.getInputStream()) ); String rida=vorgust.readLine(); while(rida!=null){ sisu.append(rida+"\n"); if(soiduala!=null && rida.startsWith(".")){ soiduala.tootleKask(rida); } rida=vorgust.readLine(); } } catch(Exception ex){ ex.printStackTrace(); } yhendusNupp.setEnabled(true); } void yhenda(){ try{ sc=new Socket(tfServeriNimi.getText(), Integer.parseInt(tfServeriPort.getText())); vorku=new PrintWriter(sc.getOutputStream(), true); new Thread(this).start(); }catch(Exception ex){ ex.printStackTrace(); } } public void actionPerformed(ActionEvent e){ if(e.getSource()==yhendusNupp){ yhenda(); } if(e.getSource()==kirjutusrida){ vorku.println(kirjutusrida.getText()); kirjutusrida.setText(""); } } public static void main(String[] arg){ Frame f=new Frame("Klient"); f.setSize(300, 300); f.add(new JututoaKlient2()); f.setVisible(true); } }