设为首页 加入收藏

TOP

Java UDP聊天程序
2014-11-24 02:43:26 来源: 作者: 【 】 浏览:1
Tags:Java UDP 聊天 程序

  import java.awt.BorderLayout;


  import java.awt.List;


  import java.awt.TextField;


  import java.awt.event.ActionEvent;


  import java.awt.event.ActionListener;


  import java.io.IOException;


  import java.net.DatagramPacket;


  import java.net.DatagramSocket;


  import java.net.InetAddress;


  import java.net.SocketException;


  import java.net.UnknownHostException;


  import javax.swing.JFrame;


  import javax.swing.JPanel;


  public class netchat {


  JFrame jf=new JFrame("我的网络聊天程序");


  List l=new List(6);


  JPanel jp=new JPanel();


  TextField tip=new TextField(15);


  TextField tdata=new TextField(15);


  DatagramSocket ds;


  //DatagramPacket dp;


  public netchat()


  {


  tip.setText("127.0.0.1");


  try {


  ds=new DatagramSocket(3000);


  } catch (SocketException e) {


  // TODO Auto-generated catch block


  e.printStackTrace();


  }


  new Thread(new Runnable()


  {


  DatagramPacket dp;


  public void run()


  {


  byte [] buf=new byte[1024];


  dp=new DatagramPacket(buf,1024);


  //


  // byte[] buf=new byte[1024];


  // dp=new DatagramPacket(buf,1024);


  while(true)


  {


  try {


  ds.receive(dp);


  // l.add(dp.getAddress().getHostName()+"say:"+new String(buf,0,dp.getLength()), -1);


  l.add(dp.getAddress().getHostAddress()+" say:"+new String(buf,0,+dp.getLength()), -1);


  } catch (IOException e) {


  // TODO Auto-generated catch block


  e.printStackTrace();


  }


  }


  }


  }).start();


  }


  public static void main(String[] args) {


  // TODO Auto-generated method stub


  new netchat().init();


  }


  private void init()


  {


  jf.add(l);


  jp.add(tip,BorderLayout.WEST);


  jp.add(tdata,BorderLayout.EAST);


  jf.add(jp,BorderLayout.SOUTH);


  jf.setSize(300, 300);


  jf.setVisible(true);


  jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


  tdata.addActionListener(new ActionListener()


  {


  public void actionPerformed(ActionEvent e)


  {


  // byte[] buf;


  // buf=e.getActionCommand().getBytes();


  // DatagramPacket dp;


  // try


  // {


  // dp=new DatagramPacket(buf,buf.length,InetAddress.getByName(tip.getText()),3000);


  // ds.send(dp);


  //


  byte [] buf;


  buf=e.getActionCommand().getBytes();


  DatagramPacket dp;


  try {


  dp= new DatagramPacket(buf,buf.length,InetAddress.getByName(tip.getText()), 3000);


  ds.send(dp);


  } catch (UnknownHostException e1) {


  // TODO Auto-generated catch block


  e1.printStackTrace();


  } catch (IOException e1) {


  // TODO Auto-generated catch block


  e1.printStackTrace();


  }


  ((TextField)e.getSource()).setText("");


  }


  });


  }


  }


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇解决Linux下Java图形界面中文显示.. 下一篇Java classloader的体系结构

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: