A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. //package MyQQ;

  2. import java.io.*;
  3. import java.net.*;
  4. import java.awt.*;
  5. import java.awt.event.*;

  6. class MyQQ
  7. {
  8.         public static void main(String[] args)throws Exception
  9.         {
  10.                 new MyWindow();
  11.                 new Send(new DatagramSocket());
  12.                 Thread t = new Thread(new Rece(new DatagramSocket(10000)));

  13.                 t.start();

  14.                 //Thread t1 = new Thread(new Send(new DatagramSocket()));
  15.                 //Thread t2 = new Thread(new Rece(new DatagramSocket(10000)));

  16.                 //t1.start();
  17.                 //t2.start();
  18.                
  19.                 //System.out.println("Hello World!");
  20.         }
  21. }
  22. class MyWindow
  23. {
  24.         private Frame f;
  25.         public static TextArea ta;
  26.         public static TextField tf;
  27.         private Button but;
  28.         public static String str;
  29.         public MyWindow()
  30.         {
  31.                 init();
  32.         }
  33.         public void init()
  34.         {
  35.                 f = new Frame("MyQQ");
  36.                 f.setBounds(300,100,500,650);
  37.                 f.setLayout(new FlowLayout());
  38.                
  39.                 ta = new TextArea(35,60);
  40.                 tf = new TextField(50);
  41.                 but = new Button("发送");
  42.                
  43.                 f.add(ta);
  44.                 f.add(tf);
  45.                 f.add(but);
  46.                 myEvent();
  47.                 f.setVisible(true);
  48.         }
  49.         private void myEvent()
  50.         {
  51.                 f.addWindowListener(new WindowAdapter()
  52.                 {
  53.                         public void windowClosing(WindowEvent e)
  54.                         {
  55.                                 System.exit(0);
  56.                         }
  57.                 });

  58.                 but.addActionListener(new ActionListener()
  59.                 {
  60.                         public void actionPerformed(ActionEvent e)
  61.                         {
  62.                                 Send.send();
  63.                         }
  64.                 });

  65.                 tf.addKeyListener(new KeyAdapter()
  66.                 {
  67.                         public void keyPressed(KeyEvent e)
  68.                         {
  69.                                 if (e.getKeyCode()==KeyEvent.VK_ENTER)
  70.                                         Send.send();
  71.                         }
  72.                 });


  73.         }
  74. }
  75. class Send implements Runnable
  76. {
  77.         private static DatagramSocket ds;
  78.         private static String line;
  79.         public Send(DatagramSocket ds)
  80.         {
  81.                 this.ds = ds;
  82.         }
  83.         public void run()
  84.         {
  85.                 send();

  86.         }
  87.         public static void send()
  88.         {
  89.                 try
  90.                 {
  91.                         line =MyWindow.tf.getText();
  92.                         //while (!(line=="over"))
  93.                         //{
  94.                                 //MyWindow.ta.append(line+"\r\n");
  95.                         byte[] buf = line.getBytes();
  96.                         DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.0.255"),10000);
  97.                         ds.send(dp);
  98.                         MyWindow.tf.setText(null);
  99.                                
  100.                         //}
  101.                         //System.exit(0);                       
  102.                 }
  103.                 catch (Exception e)
  104.                 {
  105.                         throw new RuntimeException("发送异常");
  106.                 }
  107.         }
  108. }

  109. class Rece implements Runnable
  110. {
  111.         private DatagramSocket ds;
  112.         public Rece(DatagramSocket ds)
  113.         {
  114.                 this.ds = ds;
  115.         }
  116.         public void run()
  117.         {
  118.                 try
  119.                 {
  120.                         while (true)
  121.                         {
  122.                                 byte[] buf = new byte[1024];
  123.                                 DatagramPacket dp = new DatagramPacket(buf,buf.length);
  124.                                 ds.receive(dp);
  125.                                 String s = new String(dp.getData(),0,dp.getLength());
  126.                                 MyWindow.ta.append(s+"\r\n");
  127.                                 System.out.println(s);
  128.                         }
  129.                        
  130.                 }
  131.                 catch (Exception e)
  132.                 {
  133.                         throw new RuntimeException("接收异常");
  134.                 }
  135.         }
  136. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
洋葱头头 + 1

查看全部评分

4 个回复

倒序浏览
要沉。。。。
回复 使用道具 举报
ksh 中级黑马 2015-10-18 18:49:04
藤椅
顶一个吧,虽然没看懂。。。
回复 使用道具 举报
厉害啊///////
回复 使用道具 举报
不知道怎么玩
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马