Java 网络编程Udp

时间:2022-04-06 20:18:05

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();
}
}