JAVA Socket编程(一)之UDP通信

简介: 常见的通讯协议有udp和tcp。 --将数据及源、目的封装在数据包中,不需要建立连接; --每个数据包的大小限制在64k以内; --因无连接,是不可靠协议; --不需要建立连接,所以传输速度快,但是容易丢失数据; 总之:Udp是面向无连接的通讯协议,传输数据时,不管对端服务是否启动,直接发送。

常见的通讯协议有udp和tcp。

--将数据及源、目的封装在数据包中,不需要建立连接;

--每个数据包的大小限制在64k以内;

--因无连接,是不可靠协议;

--不需要建立连接,所以传输速度快,但是容易丢失数据;

总之:Udp是面向无连接的通讯协议,传输数据时,不管对端服务是否启动,直接发送。

日常中使用Udp技术的软件有:飞秋、视频会议等;

 

 

分为客户端、服务器端

 

服务器段代码如下:

 1 package udp;
 2 
 3 import java.net.DatagramPacket;
 4 import java.net.DatagramSocket;
 5 
 6 public class Server {
 7     public static void main(String[] args) {
 8         DatagramSocket ds=null;
 9         DatagramPacket dp=null;
10         try {
11             ds=new DatagramSocket(9000);//服务端口
12             byte[] b=new byte[1024];//用于接收客户端的数据
13             dp=new DatagramPacket(b, b.length);
14             ds.receive(dp);//接收
15             String me=new String (dp.getData(),0,dp.getLength());//得到字符串
16             System.out.println(me);
17             
18             
19             
20     
21             ds=new DatagramSocket();
22             String me2="ok";
23             dp=new DatagramPacket(me2.getBytes(), me2.length(), dp.getAddress(), dp.getPort());//直接根据数据报获取到获取数据的地址,端口
24             ds.send(dp);//响应数据
25         } catch (Exception e) {
26             // TODO: handle exception
27             e.printStackTrace();
28         }
29     }
30 }


 

客户端代码如下:

 1 package udp;
 2 
 3 import java.net.DatagramPacket;
 4 import java.net.DatagramSocket;
 5 import java.net.InetAddress;
 6 
 7 public class Client {
 8     public static void main(String[] args) {
 9         DatagramSocket ds=null;
10         DatagramPacket dp=null;
11         try {
12             ds=new DatagramSocket();
13             String message="hello";
14             dp=new DatagramPacket(message.getBytes(), message.length(), InetAddress.getByName("localhost"), 9000);
15             ds.send(dp);
16             
17         
18             byte[] b=new byte[1024];
19             dp=new DatagramPacket(b, b.length);
20             ds.receive(dp);
21             String me=new String (dp.getData(),0,dp.getLength());
22             System.out.println(me);
23             
24         } catch (Exception e) {
25             // TODO: handle exception
26             e.printStackTrace();
27         }
28     }
29 }

 

tcp编程查看:http://www.cnblogs.com/GH0522/p/8119533.html

欢迎大家一起说出自己的想法。
目录
相关文章
|
9月前
|
Java 物联网 定位技术
Java socket获取gps定位
通过Java Socket编程获取GPS定位信息可以实现实时的地理位置跟踪。本文介绍了如何搭建Socket服务器、解析GPS数据以及实现客户端发送GPS数据的流程。希望这篇文章能为开发者提供清晰的指导,帮助构建高效的GPS定位系统。
188 7
|
12月前
|
Java 流计算
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
152 1
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
|
12月前
|
网络协议 安全 Java
Java Socket原理
Java Socket原理是指在Java中通过Socket实现的网络通信的基础理论与机制。Socket是网络中不同设备间通信的一种标准方式,它允许应用程序之间通过TCP/IP等协议进行数据交换。在Java中,利用Socket编程可以方便地创建客户端与服务器端应用,实现跨网络的数据传输功能,是互联网软件开发中的重要技术之一。它支持多种通信模式,如可靠的流式套接字(TCP)和数据报式套接字(UDP)。
196 10
|
12月前
|
网络协议 Linux 网络性能优化
Linux C/C++之TCP / UDP通信
这篇文章详细介绍了Linux下C/C++语言实现TCP和UDP通信的方法,包括网络基础、通信模型、编程示例以及TCP和UDP的优缺点比较。
440 0
Linux C/C++之TCP / UDP通信
|
12月前
|
JavaScript 安全 Java
谈谈UDP、HTTP、SSL、TLS协议在java中的实际应用
下面我将详细介绍UDP、HTTP、SSL、TLS协议及其工作原理,并提供Java代码示例(由于Deno是一个基于Node.js的运行时,Java代码无法直接在Deno中运行,但可以通过理解Java示例来类比Deno中的实现)。
215 1
|
12月前
|
网络协议 Linux 网络性能优化
Linux基础-socket详解、TCP/UDP
综上所述,Linux下的Socket编程是网络通信的重要组成部分,通过灵活运用TCP和UDP协议,开发者能够构建出满足不同需求的网络应用程序。掌握这些基础知识,是进行更复杂网络编程任务的基石。
417 1
java网络编程 UDP通信协议实现局域网内文件的发送和接收
java网络编程 UDP通信协议实现局域网内文件的发送和接收
166 1
java网络编程 UDP通信协议实现局域网内文件的发送和接收
|
C语言
C语言 网络编程(七)UDP通信创建流程
本文档详细介绍了使用 UDP 协议进行通信的过程,包括创建套接字、发送与接收消息等关键步骤。首先,通过 `socket()` 函数创建套接字,并设置相应的参数。接着,使用 `sendto()` 函数向指定地址发送数据。为了绑定地址,需要调用 `bind()` 函数。接收端则通过 `recvfrom()` 函数接收数据并获取发送方的地址信息。文档还提供了完整的代码示例,展示了如何实现 UDP 的发送端和服务端功能。
|
12月前
|
网络协议 测试技术 网络安全
Python编程-Socket网络编程
Python编程-Socket网络编程
116 0
|
网络协议 Linux
TCP 和 UDP 的 Socket 调用
【9月更文挑战第6天】

热门文章

最新文章