java网络基础—UDP
来源:互联网 发布:淘宝运营助理工资 编辑:程序博客网 时间:2024/05/16 16:08
UDP在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。在OSI模型中,在第四层——传输层。UDP使用数据报包DataGramPacket类来实现无连接包投递服务,通过DataGramSocket类对传输文件的收发。
对于UDP客户端来说,发送文件主要有以下步骤:
(1) 创建数据包发送对象(可以提供使用的端口,也可以不提供);
(2) 获取需要发送的内容,将其数据包化(数据包需要提供文件的封装数据还,需要接受文件对象的IP和端口);
(3) 发送数据包
(4) 关闭
对于UDP服务端来说,接受文件主要有以下步骤:
(1) 创建接收对象(需要传递端口,与上文封装数据包的端口一致)
(2) 创建数据包对象接受发送的数据包,将其解包
(3) 输出接收的文件
(4) 关闭
下面的例子完成了从发送端到接收端信息的传输:
发送端:
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;public class UDPSend { public static void main(String[] args) throws IOException { //设置发送数据接受端的IP InetAddress localHost=InetAddress.getByName("127.0.0.1"); //设置发送端口 DatagramSocket datagramSocket =new DatagramSocket(2000); //从键盘录入数据 InputStream inputStream= System.in; InputStreamReader inputStreamReader=new InputStreamReader(inputStream); BufferedReader bufferedReader=new BufferedReader(inputStreamReader); //读取输入的一行数据将其数据包化,发送到接收端 String string=null; while((string=bufferedReader.readLine())!=null) { byte[] buf= string.getBytes(); //数据包封包 DatagramPacket datagramPacket =new DatagramPacket(buf, buf.length,localHost,10000); //发送数据包 datagramSocket.send(datagramPacket); //关闭发送套接字 if(string.equals("GG")) { break; } } datagramSocket.close(); }}
接收端:
import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;public class UDPReceive { public static void main(String[] args) throws IOException { //设置接收端的端口号 DatagramSocket datagramSocket2=new DatagramSocket(10000); byte[] buf2=new byte[1024]; while(true) { //新建数据包,接受发送端发送过来的数据包 DatagramPacket datagramPacket2=new DatagramPacket(buf2, buf2.length); datagramSocket2.receive(datagramPacket2); //解包,把数据包的信息字符串化 int lengh=datagramPacket2.getLength(); String string =new String(buf2,0,lengh); if(string.equals("GG")) { System.out.println("GGGGGGGGGGGGGGGGGGGGGGGG"); break; } else{ //输出接收到的信息 System.out.println("====="+string); } datagramSocket2.close(); } }}
阅读全文
0 0
- java网络基础—UDP
- java基础之网络基础tcp\udp
- 黑马程序员——Java基础->网络编程(UDP)
- Java基础——网络编程(上)之UDP
- Java基础——网络编程(TCP、UDP)
- 黑马程序员——Java基础---网络编程(UDP编程)
- java基础学习笔记——网络UDP/聊天
- java基础—10.网络编程TCP/UDP
- java基础--网络编程之UDP
- Java基础--网络编程之UDP
- JAVA基础学习之UDP网络编程
- java的基础网络编程:TCP/UDP
- java基础之网络(UDP-Socket)
- TCP、UDP协议,java网络通信基础
- Java基础-网络编程之UDP编程
- Java基础---网络编程 ip udp
- java语言基础(100)——网络编程(udp tcp发收数据)
- 黑马程序员 ---------- Java 网络基础 基于UDP 模仿QQ
- POJ 3252 数位DP 解题报告
- 在Eclipse中导入gradel项目
- UVa 10082(WERTYU)
- markdown2
- Leetcode 51. N-Queens
- java网络基础—UDP
- C语言:if语句的嵌套
- Leetcode 477 Total Hamming Distance
- spring注解开发之@modelAttribute
- 刚体与COLLIDER
- Leetcode 628 Maximum Product of Three Numbers
- 【codejam2008_QualificationRound_C】Fly Swatter
- UVa 272(TEX Quotes)
- Intellij Idea 搭建J2EE SpringMVC