我要做一个聊天室,只要知道对方的IP、端口号就可以聊天,有那位给点提意 

解决方案 »

  1.   

    用socket,一台机器运行服务端,ServerSocket(),
    客户端知道服务端ip,prot,用socket()连接。。具体你还是要去google搜一些相关的文章看看,有很多
      

  2.   

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.net.*;
    import java.io.IOException;public class ChatDemo extends JFrame {
    private JTextField tfIP,tfMessage;
    private List display;
    DatagramSocket ds = null;
    DatagramPacket dp = null;

    public ChatDemo(){

    super("聊天程序");

    //set up GUI
    JPanel southPanel= new JPanel();
    southPanel.setLayout(new BorderLayout());
    tfIP = new JTextField(10);
    tfMessage = new JTextField(15);


    southPanel.add(tfIP,BorderLayout.WEST);
    southPanel.add(tfMessage,BorderLayout.EAST);

    display = new List();
    //display.setVisibleRowCount(10);

    getContentPane().add(display,BorderLayout.CENTER);
    getContentPane().add(southPanel,BorderLayout.SOUTH);

    try{
    ds = new DatagramSocket(3000);
    }
    catch(SocketException e){

    e.printStackTrace();
    }

    new Thread(

    new Runnable(){

    public void run(){

    byte[] buf = new byte[1024];
    DatagramPacket dp = new DatagramPacket(buf,1024);

    while(true){
    try{
    ds.receive(dp);
    display.add(new String(buf,0,dp.getLength())+"\n\n From:"+dp.getAddress().getHostAddress()+":"+
    dp.getPort());
    }
    catch(IOException e){

    if(!ds.isClosed())
    e.printStackTrace();
    }
    }
    }
    }
    ).start();

    tfMessage.addActionListener(

    new ActionListener(){

    public void actionPerformed(ActionEvent event){

    try{
    dp = new DatagramPacket(tfMessage.getText().getBytes(),tfMessage.getText().getBytes().length,
    InetAddress.getByName(tfIP.getText()),3000);
    ds.send(dp);

    tfMessage.setText("");
    }
    catch(IOException e){

    e.printStackTrace();
    }
    }
    }
    );

    addWindowListener(

    new WindowAdapter(){

    public void windowClosing(WindowEvent event){

    ds.close();
    dispose();
    System.exit(0);
    }
    }
    );

    setSize(300,400);
    setVisible(true);
    setResizable(false);
    }

    public static void main(String[] args){

    ChatDemo application = new ChatDemo();
    application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    }