//服务器端
import java.io.*;
import java.net.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.text.*;
public class Server extends JFrame implements ActionListener
{
private JTextArea t1,t2;
private JButton btn1,btn2,btn3,btn4,btn5;
private JScrollPane p1,p2;
private JPanel p3,p4;
private ServerSocket sSocket;
private Socket socket=null;
private String message=null;
private DataInputStream in=null;
private DataOutputStream out=null;
public Server()
{
super("Server");
setVisible(true);
setSize(400,300);
t1=new JTextArea(10,10);
t2=new JTextArea(10,10);
btn1=new JButton("字体");
btn2=new JButton("颜色");
btn3=new JButton("聊天记录");
btn4=new JButton("关闭");
btn5=new JButton("发送");
p1=new JScrollPane(t1);
p2=new JScrollPane(t2);
p3=new JPanel();
p4=new JPanel();
p3.add(btn1);
p3.add(btn2);
p4.add(btn3);
p4.add(btn4);
p4.add(btn5);
Container con=getContentPane();
con.setLayout(new GridLayout(4,1));
con.add(p1);
con.add(p3);
con.add(p2);
con.add(p4);
btn5.addActionListener(this);
validate();
show();
}
public void waitForConnect()
{
try
{
sSocket=new ServerSocket(4321);
}
catch(IOException e)
{
System.out.println(e);
e.printStackTrace();
}
     }
public void communicateWithClient()
{
while(true)
{
try
   {
  socket=sSocket.accept();
  in=new DataInputStream(socket.getInputStream());
  while(true)
  {
  message=in.readUTF();
      if(message!=null)break;
      in.close();
  }
  t1.append(message);
   }
      catch(IOException e){System.out.println(e);break;}
}

}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==btn5)
{
Date now=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time=sdf.format(now);
String s="Server ("+time+"):"+t2.getText()+"\n";
t1.append(s);
t2.setText(null);
try
{
out=new DataOutputStream(socket.getOutputStream());
out.writeUTF(s);
out.flush();
out.close();
}
catch(IOException ee){System.out.println(ee);}
}
}
public static void main(String arg[])
{
Server server=new Server();
server.waitForConnect();
server.communicateWithClient(); 
}
}
//客户端..
import java.io.*;
import java.net.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.text.*;
public class Client extends JFrame implements ActionListener
{
private JTextArea t1,t2;
private JButton btn1,btn2,btn3,btn4,btn5;
private JScrollPane p1,p2;
private JPanel p3,p4;
private Socket socket=null;
private String message=null;
private DataInputStream in=null;
private DataOutputStream out=null;
public Client()
{
super("Client");
setVisible(true);
setSize(400,300);
t1=new JTextArea(10,10);
t2=new JTextArea(10,10);
btn1=new JButton("字体");
btn2=new JButton("颜色");
btn3=new JButton("聊天记录");
btn4=new JButton("关闭");
btn5=new JButton("发送");
p1=new JScrollPane(t1);
p2=new JScrollPane(t2);
p3=new JPanel();
p4=new JPanel();
p3.add(btn1);
p3.add(btn2);
p4.add(btn3);
p4.add(btn4);
p4.add(btn5);
Container con=getContentPane();
con.setLayout(new GridLayout(4,1));
con.add(p1);
con.add(p3);
con.add(p2);
con.add(p4);
btn5.addActionListener(this);
validate();
show();
}
public void connectToServer()
{
try
{
socket=new Socket("localhost",4321);
}
catch(IOException e)
{
System.out.println(e);
}
}
public void communicationToServer()
{
while(true)
{
try
   {
   in=new DataInputStream(socket.getInputStream());
   while(true)
  {
      message=in.readUTF();
      if(message!=null)break;
  }
  t1.append(message);
       }
       catch(IOException e)
   {
     e.printStackTrace();
    System.out.println(e);
    break;
   }
}


     }
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==btn5)
{
Date now=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time=sdf.format(now);
String s="Client ("+time+"):"+t2.getText()+"\n";
t1.append(s);
t2.setText(null);
try
{
out=new DataOutputStream(socket.getOutputStream());
out.writeUTF(s);
out.flush();
out.close();
}
catch(IOException ee){System.out.println(ee);}
}
}
public static void main(String arg[])
{
Client client=new Client();
client.connectToServer();
client.communicationToServer();
}
}

解决方案 »

  1.   

    zlchat1.1 网页视频聊天室发布,支持asp,jsp,php,aspx集成功能如下:
    1.每个房间最高可达100人,一台服务器最高可支持10000人同时在线 2.普通ADSL可以同时看10路用户视频 3.可以私聊,私聊也包括语音功能4.管理员可以踢人,锁定聊天室,禁止视频,语音5.支持asp,jsp,php,.net集成6. 跨平台,支持windows,linux,unix 服务器
    下载:http://www.zlsoftcn.com
     演示:http://www.zlsoftcn.com/demo/zlchat/index.php
          http://www.zlsoftcn.com/demo/zlchat/admin.php  (管理员)
      

  2.   

    我也做了个UDP的聊天程序,大家互相帮助调试,
    QQ:309967656
    MSN:[email protected]