Java UDP使用Socket进行网络通信(0)

作者 : 卿笃军

原文地址:http://blog.csdn.net/qingdujun/article/details/39300293

 

下面演示一个程序,用客户端给服务器发送一条信息,服务器收到后,打印在控制面板上。

1)客户端,给服务器发送数据

2)服务器,收到数据后,打印在控制面板上

 

一、客户端,主要步骤:

1)创建udp服务。通过DatagramSocket对象。

2)创建数据,并封装成数据包。

3)通过Socket服务,将已有数据包发送出去。通过send方式。

4)关闭资源。

客户端,发送数据代码如下:

 

  1. package udp.send.qdj;  
  2.   
  3. import java.net.DatagramPacket;  
  4. import java.net.DatagramSocket;  
  5. import java.net.InetAddress;  
  6. //Udp发送端  
  7. public class CUdpsend {  
  8.   
  9.     public static void main(String[] args) throws Exception {  
  10.         //1.创建udp服务。通过DatagramSocket对象。  
  11.         DatagramSocket ds = new DatagramSocket(1234);  
  12.         //2.创建数据,并封装成数据包。  
  13.         //DatagramPacket(byte[] buf, int length, InetAddress address, int port)   
  14.         //构造数据报包,用来将长度为 length 的包发送到指定主机上的指定端口号。  
  15.         byte[] buf = "udp send from Server".getBytes();  
  16.         DatagramPacket dp = new DatagramPacket(buf, buf.length,InetAddress.getByName("10.100.56.210"),10000);  
  17.         //3.通过Socket服务,将已有数据包发送出去。通过send方式。  
  18.         ds.send(dp);  
  19.         //4.关闭资源  
  20.         ds.close();  
  21.     }  
  22. }  

 

二、服务器端,主要步骤如下:

1)创建Udp Socket,建立端点。监听一个端口,其实就是给这个网络程序一个数字标示,方便与明确,哪些数据该应用程序可以处理。

2)定义数据包。用于储存数据。

3)通过服务的receive方法将收到数据存入数据包中。

4)通过数据包的方法获取其中的数据。

5)关闭资源。

服务器端,接受数据并打印在控制面板上,代码如下:

 

  1. package udp.rece.qdj;  
  2.   
  3. import java.net.DatagramPacket;  
  4. import java.net.DatagramSocket;  
  5.   
  6. //Udp接收端  
  7. public class CUdprece {  
  8.   
  9.     public static void main(String[] args) throws Exception{  
  10.         //1.创建Udp Socket,建立端点。监听一个端口,其实就是给这个网络程序一个数字标示,  
  11.         //方便与明确,哪些数据该应用程序可以处理。  
  12.         DatagramSocket ds = new DatagramSocket(10000);  
  13.         //2.定义数据包。用于储存数据。  
  14.         byte[] buf = new byte[1024];  
  15.         DatagramPacket dp = new DatagramPacket(buf,buf.length);  
  16.         //3.通过服务的receive方法将收到数据存入数据包中。  
  17.         //此方法为阻塞式方法,没数据接受时,处于阻塞状态。  
  18.         ds.receive(dp);  
  19.         //4.通过数据包的方法获取其中的数据。  
  20.         //获得ip地址  
  21.         String ip = dp.getAddress().getHostAddress();  
  22.         //获得传送数据  
  23.         String data = new String(dp.getData(),0,dp.getLength());  
  24.         //获得端口号  
  25.         int port = dp.getPort();  
  26.         System.out.println("ip地址:"+ip+"\n发送内容data:"+data+"\n端口号port:"+port);  
  27.         //5.关闭资源  
  28.         ds.close();  
  29.     }  
  30. }  

运行结果显示:

 

参考文献:Java视频 毕向东 主讲

原文地址:http://blog.csdn.net/qingdujun/article/details/39300293

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。