public class ChatClient extends JFrame{
    JTextField jftxt=new JTextField();
    JTextArea jatxt=new JTextArea(10,10);
    static String str;
    DataInputStream resevier = null;
    DataOutputStream send = null;
public static void main(String[] args){
new ChatClient().launchfeame();
}
public void launchfeame(){
    this.setLocation(400,100);
    this.setSize(200,400);
    this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    this.add(jftxt,BorderLayout.SOUTH);
    this.add(jatxt,BorderLayout.NORTH);
    jftxt.addActionListener(new Tflistener());
    pack();
    this.setVisible(true);
    launchnet();
}public void launchnet(){
    ServerSocket server = null;   Socket sk = null;
        try {
            Socket s = new Socket("127.0.0.1", 8888);
        } catch (UnknownHostException ex) {
            Logger.getLogger(ChatClient.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(ChatClient.class.getName()).log(Level.SEVERE, null, ex);
        }
            try {
            resevier = new DataInputStream(sk.getInputStream());
            send = new DataOutputStream(sk.getOutputStream());
        } catch (IOException ex) {
            Logger.getLogger(ChatServer.class.getName()).log(Level.SEVERE, null, ex);
        }
}
private class Tflistener implements ActionListener{
        public void actionPerformed(ActionEvent ae) {
           str=jftxt.getText();
           jatxt.setText(str+"\n"+"------------------------");
           jftxt.setText("");
            try {
                send.writeUTF(str);
            } catch (IOException ex) {
                Logger.getLogger(ChatClient.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
}
}服务端public class ChatServer extends JFrame{
    static String str;    DataInputStream resevier = null;     DataOutputStream send = null;    JTextField jftxt=new JTextField();   JTextArea jatxt=new JTextArea(10,10);public static void main(String[] args){
    new ChatClient().launchfeame();
}
public void launchfeame(){
    this.setLocation(400,100);
    this.setSize(200,400);
    this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    this.add(jftxt,BorderLayout.SOUTH);
    this.add(jatxt,BorderLayout.NORTH);
    jftxt.addActionListener(new Tflistener());
    pack();
    this.setVisible(true);
    launchnet();
}public void launchnet(){
    ServerSocket server = null;
    Socket sk = null;
        try {
            server = new ServerSocket(8888);
            while(true){
            sk= server.accept();
System.out.print("连接成功!");
        }
        } catch (IOException ex) {
        ex.printStackTrace();
        }
     try {
            resevier = new DataInputStream(sk.getInputStream());
            send = new DataOutputStream(sk.getOutputStream());
        } catch (IOException ex) {
            Logger.getLogger(ChatServer.class.getName()).log(Level.SEVERE, null, ex);
        }
            try {
            str=resevier.readUTF();
            System.out.print(str);
        } catch (IOException ex) {
            Logger.getLogger(ChatServer.class.getName()).log(Level.SEVERE, null, ex);
        }
}private class Tflistener implements ActionListener{        public void actionPerformed(ActionEvent ae) {
           str=jftxt.getText();
           jatxt.setText(str+"\n"+"------------------------");
           jftxt.setText("");
        }}
}
错误提示
2010-12-28 11:36:27 chat02.ChatClient launchnet
严重: null
java.net.ConnectException: Connection refused: connect
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
        at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
        at java.net.Socket.connect(Socket.java:529)
        at java.net.Socket.connect(Socket.java:478)
        at java.net.Socket.<init>(Socket.java:375)
        at java.net.Socket.<init>(Socket.java:189)
        at chat02.ChatClient.launchnet(ChatClient.java:51)
        at chat02.ChatClient.launchfeame(ChatClient.java:45)
        at chat02.ChatServer.main(ChatServer.java:34)
Exception in thread "main" java.lang.NullPointerException
        at chat02.ChatClient.launchnet(ChatClient.java:58)
        at chat02.ChatClient.launchfeame(ChatClient.java:45)
        at chat02.ChatServer.main(ChatServer.java:34)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at chat02.ChatClient$Tflistener.actionPerformed(ChatClient.java:70)

解决方案 »

  1.   

    这个代码跟哪粘的,好多错呀……建议自己写写吧
    报上述异常是由于你ChatServer的main函数里new的是ChatClient的对象public static void main(String[] args){
        new ChatClient().launchfeame();
    }还有一个错是,ChatClient里面Socket的对象用的空指针public void launchnet(){
        ServerSocket server = null; Socket sk = null;
        try {
          Socket s = new Socket("127.0.0.1", 8888); // 套接字对象是s
        } catch (UnknownHostException ex) {
          Logger.getLogger(ChatClient.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
          Logger.getLogger(ChatClient.class.getName()).log(Level.SEVERE, null, ex);
        }
        try {
          resevier = new DataInputStream(sk.getInputStream()); // 用的是sk,空指针
          send = new DataOutputStream(sk.getOutputStream());
        } catch (IOException ex) {
          Logger.getLogger(ChatServer.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
      

  2.   

    自己先写一个,不会的再问问吧。当然,你要是为了应付作业什么的,我这也有写好的,网络版和单机版,丰富的界面和简陋的dos运行窗口的都有,要是学的话就自己学学tcp和udp编程。实在不会编的地方再问问。