0

よし、前の先生からもらった Java アプレットを実行するには助けが必要だ。それらは2つでした..1つはサーバーと呼ばれ、もう1つはクライアントと呼ばれていました。サーバーを1台のPCで実行すると、ポート番号を入力するよう求められます。同じネットワーク上の別の PC でクライアント アプレットを実行し、同じポート番号を入力します。両方が接続され、これら 2 つの PC 間でメッセージを送信できるようになります。それが私の先生が私に示した方法です。今、私はそれをやろうとしていますが、「java.net.ConnectException : 接続が拒否されました: 接続」というエラーが表示されます

今、私はそれがずっと前に機能していたことを知っており、コードは変更されていません。しかし、私は今それを機能させることができません。多分私は何かを逃していますか?ここにアプレットのコードを入れますか? 何かを添付するオプションが見つかりません。


ChatClient.java コード:

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
public class ChatClient implements ActionListener{
    static JTextArea ta = null;
    static JButton b1=null;
    static DataInputStream in = null;
    static DataOutputStream out = null;
    static Socket s = null;
    static ServerSocket ss = null;
    public ChatClient(){
        JFrame jf = new JFrame("Chat Client");
        jf.setSize(300,300);
        jf.setLocation(150,150);
        ta = new JTextArea();
        b1 = new JButton("Send");

        jf.add("South",b1);
        jf.add("North",ta);

        b1.addActionListener(this);
        jf.setVisible(true);        
    }
    public void actionPerformed(ActionEvent evt){
        if(evt.getSource()==b1){
            try{
                out.writeUTF(ta.getText());
            }
            catch(Exception e){
                System.out.println(e);
            }
        }
    }
    public static void main(String[]args){
        new ChatClient();
        try{
            int port = Integer.parseInt(JOptionPane.showInputDialog("Enter port number"));
            s = new Socket("127.0.0.1",port);
            System.out.println("client is connected");
            in = new DataInputStream(s.getInputStream());
            out = new DataOutputStream(s.getOutputStream());
            while(true){
                ta.setText(in.readUTF());
            }   
        }
        catch(Exception e){
            System.out.println(e);
        }
    }
}

ChatServer.java コード:

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
public class ChatServer implements ActionListener{
    static JTextArea ta = null;
    static JButton b1=null;
    static DataInputStream in = null;
    static DataOutputStream out = null;
    static Socket s = null;
    static ServerSocket ss = null;
    public ChatServer(){
        JFrame jf = new JFrame("Chat Server");
        jf.setSize(300,300);
        jf.setLocation(50,50);
        ta = new JTextArea();
        b1 = new JButton("Send");

        jf.add("South",b1);
        jf.add("North",ta);

        b1.addActionListener(this);
        jf.setVisible(true);        
    }
    public void actionPerformed(ActionEvent evt){
        if(evt.getSource()==b1){
            try{
                out.writeUTF(ta.getText());
            }
            catch(Exception e){
                System.out.println(e);
            }
        }
    }
    public static void main(String[]args){
        new ChatServer();
        try{
            int port = Integer.parseInt(JOptionPane.showInputDialog("Enter port number"));
            ss = new ServerSocket(port);
            System.out.println("Server start and wait...........");
            s = ss.accept();
            System.out.println("client is connected");
            in = new DataInputStream(s.getInputStream());
            out = new DataOutputStream(s.getOutputStream());
            while(true){
                ta.setText(in.readUTF());
            }   
        }
        catch(Exception e){
            System.out.println(e);
        }
    }
}

私は本当にこれが機能する必要があり、私はすべて混乱しています。私を導いてください。

4

1 に答える 1

0

あなたが尋ねた質問は数年前に見えます。送信ボタンについて別の質問をしました。送信ボタンを削除して、TextField を追加できます。TextField には actionListener があります。

于 2015-07-20T15:50:14.977 に答える