Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * @(#)ExampleClient.java
- *
- * ExampleClient application
- *
- * @author
- * @version 1.00 2008/5/25
- */
- import java.awt.*;
- import java.awt.event.*;
- import java.net.*;
- import java.io.*;
- /**********************************************************************************/
- /* Примерна задача за контролна работа по CSCB 302 "Програмиране на Java" */
- /* Клиентска част */
- /**********************************************************************************/
- public class ExampleClient extends Frame {
- // Порт за комуникация със сървъра
- final int PORT_NUMBER = 3333;
- // Елементи на графичния потребителски интерфейс
- private MenuBar menuBar = new MenuBar();
- private Menu menuFile = new Menu("File");
- private Menu menuHelp = new Menu("Help");
- private TextField textSend = new TextField(20);
- private TextArea textArea = new TextArea(5,20);
- private Button buttonConnect = new Button("Connect");
- private Button buttonSend = new Button("Send");
- private Button buttonDisconnect = new Button("Disconnect");
- private Button buttonQuit = new Button("Quit");
- private Label empty = new Label("");
- private Panel leftPanel = new Panel();
- private Panel rightPanel = new Panel();
- // Входен поток
- private BufferedReader in;
- // Изходен поток
- private PrintWriter ou;
- // Сокет за комуникация
- private Socket sock;
- public ExampleClient () {
- setTitle("Example Client");
- setMenuBar(menuBar);
- menuBar.add(menuFile);
- menuBar.add(menuHelp);
- leftPanel.setLayout(new BorderLayout());
- rightPanel.setLayout(new GridLayout(6,1));
- leftPanel.add(textSend,BorderLayout.NORTH);
- leftPanel.add(textArea,BorderLayout.CENTER);
- rightPanel.add(buttonConnect);
- rightPanel.add(buttonSend);
- rightPanel.add(buttonDisconnect);
- rightPanel.add(empty);
- rightPanel.add(empty);
- rightPanel.add(buttonQuit);
- add(rightPanel,BorderLayout.EAST);
- add(leftPanel,BorderLayout.CENTER);
- // Обработка на WindowEvent - затваряне на прозореца
- addWindowListener (new WindowAdapter() {
- public void windowClosing(WindowEvent e){
- quit();
- }
- });
- // Задействане на бутон "Connect"
- buttonConnect.addActionListener (new ActionListener() {
- public void actionPerformed (ActionEvent e) {
- connect();
- }
- });
- // Задействане на бутон "Send"
- buttonSend.addActionListener (new ActionListener () {
- public void actionPerformed (ActionEvent e) {
- send(in, ou);
- }
- });
- // Задействане на бутон Quit
- buttonQuit.addActionListener (new ActionListener () {
- public void actionPerformed(ActionEvent e) {
- quit();
- }
- });
- // Задействане на бутон "Disconnect"
- buttonDisconnect.addActionListener(new ActionListener(){
- public void actionPerformed(ActionEvent e) {
- disconnect(in, ou);
- }
- });
- buttonConnect.setEnabled(true);
- buttonSend.setEnabled(false);
- buttonDisconnect.setEnabled(false);
- setVisible(true);
- pack();
- setResizable(false);
- }
- // Функция "Connect" - свързване със сървъра
- private void connect() {
- try {
- // Създаване на сокет за комуникация със сървъра
- sock = new Socket(InetAddress.getLocalHost(),PORT_NUMBER);
- // Отваряне на входния поток
- in = new BufferedReader(new InputStreamReader(sock.getInputStream()));
- // Отваряне на изходния поток
- ou = new PrintWriter(new OutputStreamWriter(sock.getOutputStream()));
- System.out.println("Connected!");
- textArea.append(in.readLine() + "\n");
- textArea.append(in.readLine() + "\n");
- } catch (IOException ioe) {
- System.out.println(ioe.getMessage());
- ioe.printStackTrace();
- }
- buttonConnect.setEnabled(false);
- buttonSend.setEnabled(true);
- buttonDisconnect.setEnabled(true);
- }
- // Функция "Disconnect" - изпращане на съобщение към сървъра
- private void send (BufferedReader in, PrintWriter out) {
- String inLine;
- try {
- ou.println(textSend.getText()); ou.flush();
- textArea.appendText("Client: " + textSend.getText() + "\n");
- textSend.setText("");
- inLine = in.readLine();
- textArea.appendText("Server: " + inLine + "\n");
- } catch (IOException ioe) {
- ioe.printStackTrace();
- }
- }
- // Излизане от приложението
- private void quit() {
- System.exit(0);
- }
- // Прекратяване на връзката със сървъра
- private void disconnect(BufferedReader in, PrintWriter out) {
- ou.println("BYE");
- ou.flush();
- try {
- in.close();
- ou.close();
- } catch (IOException ioe) {
- System.out.println (ioe.getMessage());
- ioe.printStackTrace();
- }
- buttonConnect.setEnabled(true);
- buttonDisconnect.setEnabled(false);
- }
- public static void main(String[] args) {
- ExampleClient clientFrame = new ExampleClient();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment