Программирования сетевых взаимодействий в Java. Сухов С.А. - 37 стр.

UptoLike

Составители: 

37
out.write(data);
out.newLine();
//очищаем буфер
out.flush();
}
catch(Exception e){}
}
По щелчку на кнопке «Close» необходимо будет закрыть соединение, все
потоки и файлы, вызвав следующий обработчик:
private void button3ActionPerformed(java.awt.event.ActionEvent evt) {
// Закрываем файл данных, потоки и соединение
try{
fw.close();
in.close();
out.close();
sock.close();
}
catch(Exception e){}
}
Полный код серверной части приведен в приложении 3.
Рассмотрим клиентскую часть приложения. Как и в
классе сервера
выполним импорт java-пакетов:
import java.net.*; //классы для работы с сетью
import java.io.*; //классы для взаимодействия с файлами
Объявим класс, реализующий клиента следующим образом:
public class ClientForm extends java.awt.Frame implements Runnable
Класс сервера ClientForm также является наследником от стандартного
класса Frame и реализует интерфейс Runnable.
Объявим следующие переменные класса ClientForm:
Socket ss = null; //Ссылка на сокетное соединение
BufferedReader in = null; //Буферизованный
поток ввода
FileWriter fw = null; //Файловый поток вывода
BufferedWriter out = null;// Буферизованный поток вывода
Буферизованные потоки BufferedWriter и BufferedReader будем
использовать для обмена данными между клиентом и сервером. FileWrite для
записи полученных сообщений в файл данных. Для того чтобы отделить
процесс чтения данных из сети от основного процесса выполнения клиентского
приложения, нам потребуется новый подпроцесс
. Для этого создадим объект
process1 класса Thread.
Thread process1 = new Thread(this); //Новый подпроцесс выполнения
Создадим метод connect() для установления соединения клиента с
сервером.