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行判断程序是否有参数,如果没有则发送数据,没有任何结果的显示。