ВУЗ:
Составители:
Рубрика:
36
Создадим серверный сокет и вызовем метод accept() для ожидания
соединения со стороны клиента:
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");
Реализуем метод run() интерфейса Runnable.
public void run(){
Объявим
строковую переменную, для хранения полученного сообщения:
String indata_;
В процессе получения данных через поток ввода возможно появление
исключительных ситуаций. Поэтому защитим код от возможных исключений,
добавив оператор try и реализуя блок catch (Exception ex).
Будем читать полученные данные в следующем цикле:
while(true){
Запишем полученное сообщение в строку, прочитав его из потока ввода
методом readLine(). Данный метод позволяет читать сообщение в виде строки
текста, что является несомненным достоинством:
indata_ = in.readLine();
Отобразим сообщение в компоненте типа List:
list1.add(indata_);
Запишем сообщение в файл:
fw.write(indata_);
Реализуем методы-обработчики события ActionPerformed для
компонентов-кнопок «Connect», «Send» и «Close». По щелчку на кнопке
«Connect» будет вызван следующий обработчик, в котором производится вызов
метода
connect():
private void button2ActionPerformed(
j
ava.awt.event.ActionEvent evt) {
connect();
}
По щелчку на кнопке «Send» будет вызван следующий обработчик:
private void button1ActionPerformed(java.awt.event.ActionEvent evt) {
try{
//читаем введенную строку сообщения
String data = textField1.getText();
//записывем сообщение в выходной поток
Страницы
- « первая
- ‹ предыдущая
- …
- 34
- 35
- 36
- 37
- 38
- …
- следующая ›
- последняя »