网络编程——Socket-UDP传输案例

案例:UDP数据传输+键盘和循环

//定义传输方
public class Demo_Sender{
public static void main(String[] args){
//发送Send
//创建DatagramSocket,随机端口号
DatagramSocket sender=new DatagramSocet();
Scanner scan=new Scanner(System.in);
while(true){
//创建DatagramPacket[数据包],指定数据,长度,地址,端口
String s="你好吗?最近很想你";
byte[] bs=s.getBytes("UTF-8");
DatagramPacket packet=new DatagramPacket(bs,bs.length,Inet4Address.getByName("192.168.1.1"),5288);
//使用DatagramSocket发送DatagramPacket
sender.send(packet);
}
//关闭DatagramSockets
sender.close();
}
}

//接收方
public class Demo_receiver{
public static void main(String[] args)throws Exception{
//接收Receive
//创建DatagramSocket,指定端口号
DatagramSocket receiver=new DatagramSocket(5288);
while(true){
//创建DatagramPacket,知道你个数组,长度
byte[] buf=new byte[1024];
DatagramPacket packet=new DatagramPacket(buf,1024);
//使用 DatagramSocket接收DatagramPacket
receiver.receive(packet);
//关闭DatagramSocket,因为多次接收,就没必要进行关闭,或者放在循环外关闭
//receiver.close();
//从PackeDatagramt中获取数据
String s=new String(buf,0,packet.getLength(),"UTF-8");
System.out.println("接收到的数据为:"+s);
}
}
}

案例:UDP数据传输+键盘和循环+双线程实现

//定义发送方
 class Sender extends Thread{
public void run() throws Exception{
//发送Send
//创建DatagramSocket,随机端口号
DatagramSocket sender=new DatagramSocet();
Scanner scan=new Scanner(System.in);
while(true){
//创建DatagramPacket[数据包],指定数据,长度,地址,端口
String s="你好吗?最近很想你";
byte[] bs=s.getBytes("UTF-8");
DatagramPacket packet=new DatagramPacket(bs,bs.length,Inet4Address.getByName("192.168.1.1"),5288);
//使用DatagramSocket发送DatagramPacket
sender.send(packet);
}
//关闭DatagramSockets
sender.close();
}
}

//接收方
class Receiver extends Thread{
public void run()throws Exception{
//接收Receive
//创建DatagramSocket,指定端口号
DatagramSocket receiver=new DatagramSocket(5288);
while(true){
//创建DatagramPacket,知道你个数组,长度
byte[] buf=new byte[1024];
DatagramPacket packet=new DatagramPacket(buf,1024);
//使用 DatagramSocket接收DatagramPacket
receiver.receive(packet);
//关闭DatagramSocket,因为多次接收,就没必要进行关闭,或者放在循环外关闭
//receiver.close();
//从PackeDatagramt中获取数据
String s=new String(buf,0,packet.getLength(),"UTF-8");
System.out.println("接收到的数据为:"+s);
}
}
}

//主方法
public static void main(String[] args){
new Receiver().start();
new Sender().start();
}
发布了89 篇原创文章 · 获赞 0 · 访问量 1533

猜你喜欢

转载自blog.csdn.net/ShiZaolin/article/details/104304293