Главная > Программирование > Программирования сетевых взаимодействий в Java
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

ПРИЛОЖЕНИЕ 2. Исходный код клиента приложения 2

package primer_2;

import java.net.*;

import java.io.*;

public class ClientForm extends java.awt.Frame implements Runnable{

Thread process1 = new Thread(this);

BufferedReader in = null;

BufferedWriter out = null;

FileWriter fw = null;

Socket ss = null;

/** Создаем новое окно клиента */

public ClientForm() {

    initComponents();

}

private void initComponents() {

    list1 = new java.awt.List();

    textField1 = new java.awt.TextField();

    button1 = new java.awt.Button();

    button2 = new java.awt.Button();

    button3 = new java.awt.Button();

    setName("Client");

    setTitle("Client");

    addWindowListener(new java.awt.event.WindowAdapter() {

        public void windowClosing(java.awt.event.WindowEvent evt) {

            exitForm(evt);

        }

    });

    setLayout(null);

    add(list1);

    list1.setBounds(30, 110, 170, 170);

    add(textField1);

    textField1.setBounds(30, 70, 170, 20);

    button1.setActionCommand("button3");

    button1.setLabel("Connect");

    button1.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {

            button1ActionPerformed(evt);

        }

    });

    add(button1);

    button1.setBounds(260, 250, 100, 24);

    button2.setLabel("Send");

    button2.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {

            button2ActionPerformed(evt);

        }

    });

    add(button2);

    button2.setBounds(250, 70, 110, 24);

    button3.setLabel("Close");

    button3.addActionListener(new java.awt.event.ActionListener() {

        public void actionPerformed(java.awt.event.ActionEvent evt) {

            button3ActionPerformed(evt);

        }

    });

    add(button3);

    button3.setBounds(260, 200, 90, 24);

    setBounds(200, 200, 408, 338);

}

/** Выход из приложения */

private void exitForm(java.awt.event.WindowEvent evt) {

    System.exit(0);

}

private void button1ActionPerformed(java.awt.event.ActionEvent evt) { // Устанавливаем соединение с с хостом connect();

}

private void button2ActionPerformed(java.awt.event.ActionEvent evt) {

// Получаем строку от пользователя и пересылаем серверу

try{

    String data = textField1.getText();

    out.write(data);

    out.newLine();

    out.flush();

}

catch(Exception e){}

}

private void button3ActionPerformed(java.awt.event.ActionEvent evt) {

// Закрываем файл, потоки и соединение

try {

    fw.close();

    in.close();

    out.close();

    ss.close();

}

catch(Exception e){}

}

public void run() {

String s1;

try{

    //В цикле читаем данные из потока

    while(true) {

        s1 = in.readLine();

        //Отображаем в компоненте

        list1.add(s1);

        //Записываем в файл

        fw.write(s1);

    }

}

catch(Exception e){}

}

public void connect() {

try {

    //Устанавливаем соединение с локальным хостом

    InetAddress addr = InetAddress.getLocalHost();

    ss = new Socket(addr, 220);

    //Получаем потоки ввода_вывода

    in = new BufferedReader(new InputStreamReader(ss.getInputStream()));

    out = new BufferedWriter(new OutputStreamWriter(ss.getOutputStream()));

    //Запускаем новый подпроцесс

    process1.start();

    //Открываем файл

    fw = new FileWriter("messageCli.txt");

}

catch(Exception e){

    System.out.println(" ошибка ");

}

}

public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {

    public void run() {

        new ClientForm().setVisible(true);

    }

});

}

// Variables declaration - do not modify

private java.awt.Button button1;

private java.awt.Button button2;

private java.awt.Button button3;

private java.awt.List list1;

private java.awt.TextField textField1;

// End of variables declaration

}

<< Предыдущий параграф Следующий параграф >>