本人现在急需一个JAVA写的网络聊天程序,越简单越好.但最好是GUI形式的.就像这样:这个网址中的代码不能运行.由于我是初学JAVA还请高手帮忙给个能运行的完整程序出来.谢谢.

解决方案 »

  1.   

    package test.cs;import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.Socket;
    import java.net.UnknownHostException;public class TalkClient {
      public static void main(String[] args) {
        try {
          Socket socket = new Socket("211.144.155.20", 23);
          BufferedReader sin = new BufferedReader(new InputStreamReader(System.in));
          PrintWriter os = new PrintWriter(socket.getOutputStream());
          BufferedReader is = new BufferedReader(new InputStreamReader(socket.getInputStream()));
          String readline;
          readline = sin.readLine();
          while (!readline.equals("bye")) {
            os.println(readline);
            os.flush();
            System.out.println("Server:" + is.readLine());
            readline = sin.readLine();
          }
          os.close();
          is.close();
          socket.close();
        } catch (UnknownHostException e) {
          System.out.println("cann't   find   sever.program   end.");
          System.exit(0);
          e.printStackTrace();
        } catch (IOException e) {
          System.out.println("can't   find   sever.program   end");
          System.exit(0);    } catch (Exception e) {
          e.getMessage();
        }
      }}package test.cs;import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.ServerSocket;
    import java.net.Socket;
    import java.util.ArrayList;public class TalkServer {
      public static void main(String[] args) {
        ServerSocket server = null;
        try {
          // boolean listening=true;
          try {
            server = new ServerSocket(14700);
          } catch (IOException e) {
            System.out.println("can't   listen   to:" + e);
            e.getMessage();
          }
          while (true) {
            Socket socket = null;
            try {
              socket = server.accept(); // 接收客户连接
              MyThread workThread = new MyThread(socket); // 创建一个工作线程
              workThread.start(); // 启动工作线程
            } catch (Exception e) {
              System.out.println("error   " + e);
              e.printStackTrace();
            }
          }
        } catch (Exception e) {
          System.out.println("error:" + e);
          e.getMessage();
        } finally {
          try {
            if (server != null)
              server.close();
          } catch (Exception ex) {      }
        }
      }
    }class MyThread extends Thread {
      private Socket socket = null;  public MyThread(Socket socket) {
        this.socket = socket;
      }  public void run() {
        try {
          String line;
          BufferedReader is = new BufferedReader(new InputStreamReader(socket.getInputStream()));
          PrintWriter os = new PrintWriter(socket.getOutputStream());
          line = is.readLine();
          while (!line.equals("bye")) {
            os.println("client:" + line);
            os.flush();
            line = is.readLine();
            
            Object o=null;
           if( o instanceof String[]) {}
          }
          is.close();
          os.close();
          os.println("Thread exit!");
        } catch (Exception ex) {
          ex.printStackTrace();
        } finally {
          try {
            socket.close();
          } catch (Exception ex) {
          }
        }
      }
      
      public void listArray(ArrayList list){
        for(Object o : list) {
          if(o instanceof String[]) {
            String[] strs = (String[])o;
            for(String str : strs) {
              System.out.println(str);
            }
          }else if(o instanceof ArrayList) {
            listArray((ArrayList)o);
          }else {
            System.out.println("Not SUPPORT TYPE!!!");
            continue;
          }
        }
      }
    }
      

  2.   

    发错了
    package test.cs;import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.Socket;
    import java.net.UnknownHostException;public class TalkClient {
      public static void main(String[] args) {
        try {
          Socket socket = new Socket("localhost", 14700); // 用这个端口
          BufferedReader sin = new BufferedReader(new InputStreamReader(System.in));
          PrintWriter os = new PrintWriter(socket.getOutputStream());
          BufferedReader is = new BufferedReader(new InputStreamReader(socket.getInputStream()));
          String readline;
          readline = sin.readLine();
          while (!readline.equals("bye")) {
            os.println(readline);
            os.flush();
            System.out.println("Server:" + is.readLine());
            readline = sin.readLine();
          }
          os.close();
          is.close();
          socket.close();
        } catch (UnknownHostException e) {
          System.out.println("cann't   find   sever.program   end.");
          System.exit(0);
          e.printStackTrace();
        } catch (IOException e) {
          System.out.println("can't   find   sever.program   end");
          System.exit(0);    } catch (Exception e) {
          e.getMessage();
        }
      }}
      

  3.   

    呵呵,刚才Ping了一下"211.144.155.20",还真连上了。你开着服务端,我们用你写的程序来聊聊啊
      

  4.   

    不错.谢了.不过我最近弄了一份GUI的大家试试.
    import java.io.*;
    import java.awt.*;
    import java.net.*;
    import java.awt.event.*;
    public class chatClient extends Frame implements ActionListener
    {
    Label label=new Label("聊天");
        Panel panel=new Panel();
        TextField tf=new TextField(10);
        TextArea ta=new TextArea();
        
    Socket client;
    InputStream in;
    OutputStream out;

    public chatClient()
        {
      super("客户机");
    setSize(250,250);
    panel.add(label);
        panel.add(tf);
    tf.addActionListener(this);
    add("North",panel);
    add("Center",ta);
    addWindowListener(new WindowAdapter()
    {public  void windowClosing(WindowEvent e)
    {System.exit(0);}});
    show();
     
    try
    {
    //InetAddress.getLocalHost()
    client=new Socket(192.168.1.112,5000);
    ta.append("已连接到服务器:"+client.getInetAddress().getHostAddress()+"\n\n");
    in=client.getInputStream();
    out=client.getOutputStream();
    }
    catch(IOException ioe){} while(true)
    {
    try
    {
    byte [] buf=new byte[256];
    in.read(buf);
    String str=new String(buf);
    ta.append("服务器说:"+str);
    ta.append("\n");
    }
    catch(IOException e){}
    }
        }
    public void actionPerformed(ActionEvent e)
    {
    try
    {
    String str=tf.getText();
    byte[] buf=str.getBytes();
    tf.setText(null);
    out.write(buf);
    ta.append("我说:"+str);
    ta.append("\n");
    }
    catch(IOException ioe){}
    }
    public static void main (String[] args) {
    new chatClient();
        }
    }
      

  5.   

    import java.io.*;
    import java.awt.*;
    import java.net.*;
    import java.awt.event.*;
    public class chatServer extends Frame implements ActionListener
    {
    Label label=new Label("聊天");
        Panel panel=new Panel();
        TextField tf=new TextField(10);
        TextArea ta=new TextArea();
        
    ServerSocket server;
    Socket client;
    InputStream in;
    OutputStream out;

    public chatServer()
        {
      super("服务器");
    setSize(250,250);
    panel.add(label);
        panel.add(tf);
    tf.addActionListener(this);
    add("North",panel);
    add("Center",ta);
    addWindowListener(new WindowAdapter()
    {public  void windowClosing(WindowEvent e)
    {System.exit(0);}});
    show();
     
    try
    {
    server=new ServerSocket(5000);
    client=server.accept();
    ta.append("已连接的客户机:"+client.getInetAddress().getHostAddress()+"\n\n");
    in=client.getInputStream();
    out=client.getOutputStream();
    }
    catch(IOException ioe){} while(true)
    {
    try
    {
    byte [] buf=new byte[256];
    in.read(buf);
    String str=new String(buf);
    ta.append("客户机说:"+str);
    ta.append("\n");
    }
    catch(IOException ioe){}
    }
        }
    public void actionPerformed(ActionEvent e)
    {
    try
    {
    String str=tf.getText();
    byte[] buf=str.getBytes();
    tf.setText(null);
    out.write(buf);
    ta.append("我说:"+str);
    ta.append("\n");
    }
    catch(IOException ioe){}
    }
    public static void main (String[] args) {
    new chatServer();
        }
    }