本帖最后由 wenbaoxing 于 2013-10-26 14:59 编辑
- /*
- 这个是第23天当中讲到udp传输用键盘录入数据的例子,请看下面的疑问,
- 劳烦高人解答一下!!!
- */
- import java.net.*;
- import java.io.*;
- class UdpSend2
- {
- public static void main(String[] args) throws Exception
- {
- DatagramSocket ds=new DatagramSocket();
- BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));
- String line=null;
- while ((line=bufr.readLine())!=null)
- {
- if ("886".equals(line))
- break;
- byte[] buf=line.getBytes();
- DatagramPacket dp=new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.1.105"),10001);
- ds.send(dp);
- }
- ds.close();
- }
- }
- class UdpRece2
- {
- public static void main(String[] args)throws Exception
- {
- DatagramSocket ds=new DatagramSocket(10001);
- //这个while循环一直执行,电脑为甚么不死机呢?毕老师在视频中说receive是阻塞式方法,难道是这个原因
- while (true)
- {
- byte[] buf=new byte[1024];
- DatagramPacket dp=new DatagramPacket(buf,buf.length);
- ds.receive(dp);
- String ip=dp.getAddress().getHostAddress();
- String data=new String(dp.getData(),0,dp.getLength());
- System.out.println(ip+"˵:"+data);
- }
- }
- }
复制代码 |