/**
* @(#)Chat1.java
*
* Chat1 application
*
* @author
* @version 1.00 2007/1/29
*/
import java.awt.List;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.util.*;
public class Chat1 extends Frame
{
List lst=new List(6);
TextField tfIP=new TextField(15);
TextField tfData=new TextField(20);
DatagramSocket ds=null;
public Chat1()
{
this.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
ds.close();
e.getWindow().dispose();
System.exit(0);
}
});
Panel pl=new Panel();
pl.setLayout(new BorderLayout());
pl.add(tfIP,BorderLayout.WEST);
pl.add(tfData,BorderLayout.EAST);
this.add(lst,BorderLayout.CENTER);
this.add(pl,BorderLayout.SOUTH);
try
{
ds=new DatagramSocket(3000);
}
catch(Exception 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);
Calendar c=Calendar.getInstance();
lst.add(new String(dp.getData(),0,dp.getLength())+" from: "+
dp.getAddress().getHostAddress()+":"+dp.getPort()+new Date(),0);
}
catch(Exception e)
{
if(ds.isClosed()==false)
{
e.printStackTrace();
}
}
}
}
}).start();
tfData.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
byte []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();
}
//lst.add(tfData.getText());
tfData.setText("");
}
});
}
public static void main(String[] args)
{
// TODO, add your application code
System.out.println("Hello World!");
Chat1 mainFrame=new Chat1();
mainFrame.setTitle("Chat");
mainFrame.setBounds(300,200,300,400);
mainFrame.setVisible(true);
mainFrame.setResizable(false);
}
}