25.5.2 一个简单的例子
【实例25.3】本节演示一个UDP的设计实例,代码如下。
01 import java.net.*;
02 import java.io.*;
03 public class udptest
04 {
05 ///创建一个数据包套接字对象ds,并且指定连接的端口号
06 ///创建一个数据包对象dp
07 ///指定一个字节数组,用来存储接收的数据
08 public static void rev()
09 {
10 try
11 {
12 DatagramSocket ds=new DatagramSocket(6000);
13 byte[]buf=new byte[100];
14 DatagramPacket dp=new DatagramPacket(buf,100);
15 ds.receive(dp);
16 System.out.println(new String(buf,0,dp.getLength()));
17 ds.close();
18 }
19 catch(Exception e){}
20 }
21 ///创建一个数据包套接字对象ds
22 ///创建一个数据包对象dp,并且指定其需要连接的端口号、需连接的主机名称等
23 ///初始化一个字符串,并且将这个字符串通过套接字连接后按照端口号发送出去
24 public static void send()
25 {
26 try
27 {
28 DatagramSocket ds=new DatagramSocket();
29 String str="hello, i am zhanghong.i am a student and i am a best programer!";
30 DatagramPacket dp=new DatagramPacket(str.getBytes(),str.length(),
31 InetAddress.getByName("localhost"),6000);
32 ds.send(dp);
33 ds.close();
34 }
35 catch(Exception e){}
36 }
37 public static void main(String[]args)
38 {
39 if(args.length>0)
40 rev();
41 else
42 send();
43 }
44 }
【代码说明】以上的程序段设计了一个发送端(第24~36行)和一个接收端(第8~20行)。发送端发送了一个数组的数据,而接收端就接收发过来的数组中的字符,并且将其以字符串形式输出。
【运行效果】第39行判断程序是否有参数,如果没有则发送数据,没有任何结果的显示。