黑马程序员技术交流社区

标题: 第23天当中讲到udp传输用键盘录入数据的例子,请看下面的... [打印本页]

作者: wenbaoxing    时间: 2013-10-26 00:45
标题: 第23天当中讲到udp传输用键盘录入数据的例子,请看下面的...
本帖最后由 wenbaoxing 于 2013-10-26 14:59 编辑
  1. /*
  2. 这个是第23天当中讲到udp传输用键盘录入数据的例子,请看下面的疑问,
  3. 劳烦高人解答一下!!!

  4. */

  5. import java.net.*;
  6. import java.io.*;

  7. class  UdpSend2
  8. {
  9.         public static void main(String[] args) throws Exception
  10.         {
  11.                 DatagramSocket ds=new DatagramSocket();

  12.                 BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));
  13.                 String line=null;
  14.                 while ((line=bufr.readLine())!=null)
  15.                 {
  16.                         if ("886".equals(line))
  17.                                 break;
  18.                         byte[] buf=line.getBytes();
  19.                         DatagramPacket dp=new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.1.105"),10001);
  20.                         ds.send(dp);
  21.                 }
  22.                 ds.close();
  23.         }
  24. }

  25. class UdpRece2
  26. {
  27.         public static void main(String[] args)throws Exception
  28.         {
  29.                 DatagramSocket ds=new DatagramSocket(10001);

  30.                 //这个while循环一直执行,电脑为甚么不死机呢?毕老师在视频中说receive是阻塞式方法,难道是这个原因
  31.                 while (true)
  32.                 {
  33.                         byte[] buf=new byte[1024];
  34.                         DatagramPacket dp=new DatagramPacket(buf,buf.length);

  35.                         ds.receive(dp);

  36.                         String ip=dp.getAddress().getHostAddress();
  37.                         String data=new String(dp.getData(),0,dp.getLength());
  38.                         System.out.println(ip+"˵:"+data);
  39.                 }

  40.         }
  41. }
复制代码

作者: Jim-剣◆﹏    时间: 2013-10-26 07:32
毕老师在视频中说receive是阻塞式方法,是这个原因
语法没错,死循环不会导致死机
作者: 麦子    时间: 2013-10-26 09:39
你这个循环占用不了太大资源,也就1M多的空间,而内存分配最终还要取决于操作系统的内存管理机制,操作系统的内存分配机制还是占主导地位,一般java程序导致死机,多半是cpu占用率过高,导致程的死机




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2