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

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

package primer_2;

import java.net.*;

import java.io.*;

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

    public final static int PORT = 220;

    Socket sock = null;

    BufferedReader in = null;

    FileWriter fw = null;

    BufferedWriter out = null;

    Thread t = new Thread(this);

    /** Создаем новое окно сервера */

    public ServerForm() {

        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();

        setTitle("Server");

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

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

                exitForm(evt);

            }

        });

        setLayout(null);

        add(list1);

        list1.setBounds(30, 90, 160, 150);

        add(textField1);

        textField1.setBounds(30, 50, 160, 20);

        button1.setLabel("Send");

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

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

                button1ActionPerformed(evt);

            }

        });

        add(button1);

        button1.setBounds(240, 50, 110, 24);

        button2.setLabel("Connect");

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

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

                button2ActionPerformed(evt);

            }

        });

        add(button2);

        button2.setBounds(250, 200, 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(250, 150, 100, 24);

        setBounds(500, 500, 400, 300);

    }

    /** Завершение приложения */

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

        System.exit(0);

    }

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

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

        try{

            String data = textField1.getText();

            out.write(data);

            out.newLine();

            out.flush();

        }

        catch(Exception e){}

    }

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

        // Устанавливаем соединение

        connect();

    }

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

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

        try {

            fw.close();

            in.close();

            out.close();

            sock.close();

        }

        catch(Exception e){}

    }

    public void run(){

        String indata_;

        try {

            //Читаем в цикле данные

            while(true) {

                indata_ = in.readLine();

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

                list1.add(indata_);

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

                fw.write(indata_);

            }

        }

        catch(Exception e){}

    }

    public void connect() {

        try {

            //Создаем серверный сокет

            ServerSocket ss = new ServerSocket(PORT);

            sock = ss.accept();

            //Получаем потоки

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

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

            //Запускаем подпроцесс

            t.start();

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

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

        }

        catch (Exception ex) {

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

        }

    }

    public static void main(String args[]) {

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

            public void run() {

                new ServerForm().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

}

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