标签:java socket udp 网络编程 udp发送接收
//UDP 发送端 package liu.net.udp; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; import java.net.UnknownHostException; public class Send2 { public static void main(String[] args) throws IOException { /*UDP 发送步骤 *1. 建立DatagramSocket *2. 建立 DatagramPacket *3. 使用 DatagramSocket 的send 方法 发送数据 *4. 关闭 DatagramSocket */ //定义发送使用的端口,接收的IP地址 try { DatagramSocket ds = new DatagramSocket(8899); String str = "发送给UDP的数据"; byte[] buf = str.getBytes(); InetAddress ip = InetAddress.getByName("127.0.0.1"); DatagramPacket dp = new DatagramPacket(buf,buf.length,ip,8890); ds.send(dp); ds.close(); } catch (SocketException e) { e.printStackTrace(); } } } //UDP 接收端 package liu.net.udp; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.SocketException; public class Receive2 { public static void main(String[] args) throws IOException { /*UDP接收步骤: * 使用 DatagramSocket(int port) 建立socket(套间字)服务。(我们注意到此服务即可以接收,又可以发送),port指定监视接受端口。 *定义一个数据包(DatagramPacket),储存接收到的数据,使用其中的方法提取传送的内容 *通过DatagramSocket 的receive方法将接受到的数据存入上面定义的包中 *使用DatagramPacket的方法,提取数据。 *关闭资源。 */ //1.使用 DatagramSocket(int port) 建立socket(套间字)服务。 // (我们注意到此服务即可以接收,又可以发送),port指定监视接受端口。 DatagramSocket ds = new DatagramSocket(8890); //2.定义一个数据包(DatagramPacket),储存接收到的数据,使用其中的方法提取传送的内容 byte[] buf = new byte[1024]; DatagramPacket dp = new DatagramPacket(buf,0,buf.length); //3.通过DatagramSocket 的receive方法将接受到的数据存入上面定义的包中 ds.receive(dp); //4.使用DatagramPacket的方法,提取数据。 //获取接收的数据。数据报包也包含发送方的 IP 地址和发送方机器上的端口号。 String receiveData = new String(dp.getData(),0,dp.getLength()); String sourceAddress = dp.getAddress().getHostAddress(); int sourcePort = dp.getPort(); System.out.println("原地址:"+sourceAddress+" 发送端端口号:"+sourcePort); System.out.println("收到的数据内容:"+receiveData); //5.关闭资源。 ds.close(); } }标签:java socket udp 网络编程 udp发送接收
原文地址:http://blog.51cto.com/11359581/2047514