就是如何能够把用JAVA做UDP的聊天内容保存起来,就是在下面的程序中加载这个功能> > > > > >
package myprojects.chat;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
class Chat extends Frame{
List lst=new List(6);
TextField tfIP=new TextField(15);
TextField tfData=new TextField(20);
DatagramSocket ds=null;
public Chat(){
try{ds=new DatagramSocket(3000);}
catch(Exception e)
{e.printStackTrace();}
this.add(lst, "Center ");
Panel p=new Panel();
this.add(p, "North ");
p.setLayout(new BorderLayout());
p.add(tfIP, "West ");
p.add(tfData, "East ");
new Thread(new Runnable()
{public void run()
{byte buf[]=new byte[1024];
DatagramPacket dp=new DatagramPacket(buf,1024);
int i;
i=10000; while(true){try{ds.receive(dp);
lst.add(new String(buf,0,dp.getLength())+ "from "+dp.getAddress().getHostAddress()+ ": "+dp.getPort(),i);}
catch(Exception e){if(!ds.isClosed())
{e.printStackTrace();}
}
}
}
}).start();
tfData.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e)
{ byte [] buf;
buf = tfData.getText().getBytes();
try
{DatagramPacket dp=new DatagramPacket(buf,buf.length,InetAddress.getByName(tfIP.getText()),3000);
ds.send(dp);}
catch(Exception ex)
{ex.printStackTrace();}
tfData.setText( " ");
}
});
addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
{ds.close();
dispose();
System.exit(0);}
});
}
public static void main(String args[])
{
System.out.println( "starting chat ");
Chat mainFrame=new Chat();
mainFrame.setSize(300,600);
mainFrame.setTitle( "Chat ");
mainFrame.setVisible(true);
mainFrame.setResizable(false);
}
} 在线急等~~~望指点!!!!!
package myprojects.chat;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
class Chat extends Frame{
List lst=new List(6);
TextField tfIP=new TextField(15);
TextField tfData=new TextField(20);
DatagramSocket ds=null;
public Chat(){
try{ds=new DatagramSocket(3000);}
catch(Exception e)
{e.printStackTrace();}
this.add(lst, "Center ");
Panel p=new Panel();
this.add(p, "North ");
p.setLayout(new BorderLayout());
p.add(tfIP, "West ");
p.add(tfData, "East ");
new Thread(new Runnable()
{public void run()
{byte buf[]=new byte[1024];
DatagramPacket dp=new DatagramPacket(buf,1024);
int i;
i=10000; while(true){try{ds.receive(dp);
lst.add(new String(buf,0,dp.getLength())+ "from "+dp.getAddress().getHostAddress()+ ": "+dp.getPort(),i);}
catch(Exception e){if(!ds.isClosed())
{e.printStackTrace();}
}
}
}
}).start();
tfData.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e)
{ byte [] buf;
buf = tfData.getText().getBytes();
try
{DatagramPacket dp=new DatagramPacket(buf,buf.length,InetAddress.getByName(tfIP.getText()),3000);
ds.send(dp);}
catch(Exception ex)
{ex.printStackTrace();}
tfData.setText( " ");
}
});
addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
{ds.close();
dispose();
System.exit(0);}
});
}
public static void main(String args[])
{
System.out.println( "starting chat ");
Chat mainFrame=new Chat();
mainFrame.setSize(300,600);
mainFrame.setTitle( "Chat ");
mainFrame.setVisible(true);
mainFrame.setResizable(false);
}
} 在线急等~~~望指点!!!!!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货