Java 网络编程Udp
Java 利用网络编程有两种方式:一种是Tcp,另一种是Udp
下面我用Udp编程举例:
/* 编程实现: 1.使用UDP协议发送数据,UDP协议接收数据 2.使用UDP协议发送数据(键盘录入),UDP协议接收数据,并将其显示在控制台 3.使用UDP协议发送数据(文本文件),UDP协议接收数据,并将其显示在控制台 4.使用UDP协议发送数据(键盘录入),UDP协议接收数据,并将数据写入文本文件 5.使用UDP协议发送数据(文本文件),UDP协议接收数据,并将数据写入文本文件 */ import java.net.DatagramSocket; import java.net.DatagramPacket; import java.net.InetAddress; import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.FileReader; class UdpSendDemo{ public static void main(String[] args) throws IOException{ //method1(); //method2(); //method3(); //method4(); method5(); } //1.使用UDP协议发送数据,UDP协议接收数据 public static void method1() throws IOException{ DatagramSocket ds = new DatagramSocket(); InetAddress address = InetAddress.getByName("medal-PC"); byte[] bys = "hello,udp,我来了".getBytes(); int len = bys.length; DatagramPacket dp = new DatagramPacket(bys,len,address,8888); ds.send(dp); ds.close(); } //1.使用UDP协议发送数据(键盘录入),UDP协议接收数据,并将其显示在控制台 public static void method2() throws IOException{ DatagramSocket ds = new DatagramSocket(); while(true){ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String line = br.readLine(); if(line.equals("886")){ break; } InetAddress address = InetAddress.getByName("medal-PC"); byte[] bys = line.getBytes(); int len = bys.length; DatagramPacket dp = new DatagramPacket(bys,len,address,8888); ds.send(dp); } ds.close(); } //3.使用UDP协议发送数据(文本文件),UDP协议接收数据,并将其显示在控制台 public static void method3() throws IOException{ DatagramSocket ds = new DatagramSocket(); BufferedReader br = new BufferedReader(new FileReader("E:\\PS.txt")); String line = null; while((line = br.readLine()) != null){ InetAddress address = InetAddress.getByName("medal-PC"); byte[] bys = line.getBytes(); int len = bys.length; DatagramPacket dp = new DatagramPacket(bys,len,address,8888); ds.send(dp); } ds.close(); } //4.使用UDP协议发送数据(键盘录入),UDP协议接收数据,并将数据写入文本文件 public static void method4() throws IOException{ DatagramSocket ds = new DatagramSocket(); while(true){ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String line = br.readLine(); if(line.equals("886")){ break; } InetAddress address = InetAddress.getByName("medal-PC"); byte[] bys = line.getBytes(); int len = bys.length; DatagramPacket dp = new DatagramPacket(bys,len,address,8888); ds.send(dp); } ds.close(); } //5.使用UDP协议发送数据(文本文件),UDP协议接收数据,并将数据写入文本文件 public static void method5() throws IOException{ DatagramSocket ds = new DatagramSocket(); BufferedReader br = new BufferedReader(new FileReader("E:\\PS.txt")); String line = null; while((line = br.readLine()) != null){ InetAddress address = InetAddress.getByName("medal-PC"); byte[] bys = line.getBytes(); int len = bys.length; DatagramPacket dp = new DatagramPacket(bys,len,address,8888); ds.send(dp); } ds.close(); } }