黑马程序员技术交流社区

标题: 【基础视频学习】网络编程UDP传输 [打印本页]

作者: 泛大陆    时间: 2015-7-27 20:39
标题: 【基础视频学习】网络编程UDP传输

通过udp传输方式,将一段文字数据从一个应用程序发送到另一个应用程序中。
发送端操作步骤:
1.建立udpsocket服务,也就是数据码头
2.提供数据,并将数据封装到包中
3.通过socket发送功能,将数据包发送出去
4.关闭资源
接收端操作步骤:
1.定义udpsocket服务。接收端,通常会监听一个端口,以便发送端知道该往哪发送
     发送端一般系统随机分配端口,相互通信都需要明确端口
2.定义一个数据包,因为要存储接收到的字节数据。
     因为数据包对象中有更多功能可以提取字节数据中的不同数据信息
3.通过socket服务的receive方法将受到的数据存入已定义的数据包中
4.通过数据包对象的特有功能,将这些不同的数据取出打印在控制台上
5.关闭资源
  1. import java.net.*;
  2. import java.io.*;
  3. class UdpSend
  4. {
  5.      public static void main(String[] args)throws Exception
  6.      {
  7.           DatagramSocket ds =new DatagramSocket();
  8.           BufferedReader bufr=
  9.                new BufferedReader(new InputStreamReader(System.in));
  10.           String line=null;
  11.           while((line=bufr.readLine())!=null)
  12.           {
  13.                if("886".equals(line))
  14.                     break;
  15.                byte[] buf=line.getBytes();
  16.                DatagramPacket dp=
  17.                     new DatagramPacket(buf,buf.length,InetAddress.getByName("127.0.0.1"),10000);
  18.                ds.send(dp);   
  19.           }
  20.           ds.close();
  21.      }
  22. }
  23. class UdpRece
  24. {
  25.      public static void main(String[] args)throws Exception
  26.      {
  27.           DatagramSocket ds =new DatagramSocket(10000);
  28.           while(true)
  29.           {
  30.                byte[] buf=new byte[1024];
  31.                DatagramPacket dp=new DatagramPacket(buf,buf.length);
  32.                ds.receive(dp);
  33.                String ip=dp.getAddress().getHostAddress();
  34.                String data=new String(dp.getData(),0,dp.getLength());
  35.                System.out.println(ip+":"+data);
  36.           }
  37.      }
  38. }
复制代码








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