0

好吧,我需要帮助来运行我以前的老师给我的 Java 小程序。他们是两个..一个被称为服务器另一个被称为客户端。你在一台电脑上运行服务器,它要求你输入端口号。您在同一网络上的另一台 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 回答