Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2020, 11:11   #1
reetta_ester
Пользователь
 
Регистрация: 31.03.2019
Сообщений: 10
По умолчанию Клиент/серверное приложение на Java

Клиент через сервер нажатием на кнопку должен отправлять сообщение другому клиенту. Но по факту при нажатии на кнопку ничего не происходит. Ошибок никаких не выдает. Вероятно, я что-то делаю абсолютно неправильно. Вопрос в том, что именно.

Сервер:
Код:
import java.net.*;
import java.io.*;
public class Server {
    public static void main(String[] args) throws IOException, InterruptedException {
        ServerSocket serverSocket = new ServerSocket(9000);
        int count=0;
        while(true) {
            Socket clientSocketOne = serverSocket.accept();
            System.out.println("Client number " + (++count)+" IS connected");
            OutputStreamWriter WriterOne =
                    new OutputStreamWriter(
                    clientSocketOne.getOutputStream());
            BufferedReader ReaderOne =
                    new BufferedReader(
                    new InputStreamReader(
                            clientSocketOne.getInputStream()));
            Socket clientSocketTwo = serverSocket.accept();
            System.out.println("Client number " + (++count)+" IS connected");
            System.out.print("Message: ");
            OutputStreamWriter WriterTwo =
                    new OutputStreamWriter(
                            clientSocketTwo.getOutputStream());
            BufferedReader ReaderTwo =
                    new BufferedReader(
                            new InputStreamReader(
                                    clientSocketTwo.getInputStream()));
            String line = ReaderOne.readLine();
            System.out.println(line);
            WriterTwo.write(line);
            WriterTwo.flush();
            WriterOne.close();
            ReaderOne.close();
            clientSocketOne.close();
            WriterTwo.close();
            ReaderTwo.close();
            clientSocketTwo.close();
        }
        //serverSocket.close()
    }
}
Первый клиент, нажатием на jButton1 должен отправлять сообщение из jTextArea1 второму клиенту:
Код:
import java.net.*;
import java.io.*;
import java.util.Scanner;
public class FrameClient1 extends javax.swing.JFrame {
    
    static ServerSocket serverSocket;
    static Socket clientSocket;
    OutputStreamWriter writer;
    BufferedReader reader;
    public FrameClient1() {
        initComponents();
    }
    
    @SuppressWarnings("unchecked")
    //Generated Code

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

            Scanner scan = new Scanner(System.in);
            try{
            while (jTextArea1.getText() != null){
                scan.next(jTextArea1.getText());
            }
            reader =
                new BufferedReader(
                new InputStreamReader(
                    clientSocket.getInputStream()));
            writer =
                new OutputStreamWriter(
                clientSocket.getOutputStream());
            writer.write(scan.next()+"\n");
            writer.flush();
            writer.close();
            reader.close();
            }catch(IOException e){};
        
        try{
        clientSocket.close();
            }catch(IOException e){};
    }                                        

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        //Look and feel setting code

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new FrameClient1().setVisible(true);
            }
        });
        
        try{
        Socket clientSocket = new Socket(
                "127.0.0.1", 9000);
        }
        catch(IOException e){};
    }

    // Variables declaration - do not modify                     
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JScrollPane jScrollPane1;
    private static javax.swing.JTextArea jTextArea1;
    // End of variables declaration                   
}
Второй клиент, должен принимать сообщение:
Код:
import java.net.*;
import java.io.*;

public class FrameClient2 extends javax.swing.JFrame {

    static ServerSocket serverSocket;
    static Socket clientSocket;
    public FrameClient2() {
        initComponents();
    }

    @SuppressWarnings("unchecked")
    //Generated Code                         
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) throws IOException{
        //Look and feel setting code
      
        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new FrameClient2().setVisible(true);
            }
        });
        
        try {
        Socket clientSocket = new Socket("127.0.0.1", 9000);
        OutputStreamWriter writer =
                new OutputStreamWriter(
                        clientSocket.getOutputStream());
        BufferedReader reader =
                new BufferedReader(
                        new InputStreamReader(
                                clientSocket.getInputStream()));
        String msg = reader.readLine();
        jTextArea1.append(msg);
        writer.close();
        reader.close();
        clientSocket.close();
    }
    catch(IOException e){};
        }

    // Variables declaration - do not modify                     
    private javax.swing.JLabel jLabel1;
    private javax.swing.JScrollPane jScrollPane1;
    private static javax.swing.JTextArea jTextArea1;
    // End of variables declaration                   
}
reetta_ester вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Клиент-серверное приложение bloodykz Фриланс 0 03.05.2013 07:07
Java. Реализовать клиент-серверное приложение virt117 Фриланс 0 13.05.2012 19:32
клиент-серверное приложение roxy1807 БД в Delphi 0 19.04.2011 19:02
Клиент-серверное приложение Mixim C# (си шарп) 1 25.03.2011 01:26
Возможно-ли Клиент-серверное приложение типа Клиент(Pascal) а сервер(CGI)? Demol Работа с сетью в Delphi 1 21.04.2009 16:18