对DatagramSocket的使用实例(java使用UDP进行数据传输)

今天刚看懂的一点点东西,记录一下,方便自己回顾

客户端:

Client.java

 1 import java.io.IOException;
 2 import java.net.DatagramPacket;
 3 import java.net.DatagramSocket;
 4 import java.net.InetAddress;
 5 import java.net.SocketException;
 6
 7 import org.json.JSONObject;
 8
 9 public class Client {
10
11     private static int port = 7799;//定义端口 数据报要用
12
13     private static String IP = "127.0.0.1";//定义IP地址     数据报要用
14
15     private static DatagramPacket  packet = null;//定义要发送的数据报
16
17     public static void main(String[] args) throws IOException{
18         try(
19                 DatagramSocket socket = new DatagramSocket();//创建UDP套接字
20
21                 ) {
22             //将数据使用json编码发送
23             JSONObject jsonObject = new JSONObject();//创建json对象
24             jsonObject.put("test","hello");//给json对象插入数据
25
26             //初始化要发送的数据报参数为 {字节数组}{长度}{地址}{端口}
27             packet = new DatagramPacket(new byte[0], 0, InetAddress.getByName(IP), port);
28             //数据报应该包含发送的目的地址和端口号
29
30             byte[] test = jsonObject.toString().getBytes();//把json对象转换为字节码并存入字节数组中
31
32
33             packet.setData(test);//为要发送的数据包指定字节数组(要发送的数据)
34
35
36             socket.send(packet);//发送数据包
37         }
38         catch (SocketException e) {
39             e.printStackTrace();
40         }
41
42     }
43 }

服务端

server.java

 1 import java.io.IOException;
 2 import java.net.DatagramPacket;
 3 import java.net.DatagramSocket;
 4
 5 import org.json.JSONObject;
 6
 7 public class server {
 8     private static int port = 7799;
 9     private String IP = "127.0.0.1";
10     //创建字节数组准备接收数据
11     private static byte[] test = new byte[1024];
12     private static DatagramPacket packet = new DatagramPacket(test,test.length);
13
14     public static void main(String[] args) throws IOException {
15
16         DatagramSocket socket = new DatagramSocket(port);//创建UDP套接字
17         socket.receive(packet);//接受数据报
18
19         String hell = new String(test, 0, test.length);//将收到的数据存在字符串中
20         JSONObject jsonObject = new JSONObject(hell);//获得存储数据的字符串的json编码
21         System.out.println(jsonObject);
22         String str = jsonObject.getString("test");//获取json编码中test对象的值
23         System.out.println(str);
24     }
25
26 }

原文地址:https://www.cnblogs.com/fangmr/p/11192237.html

时间: 2024-11-08 00:04:33

对DatagramSocket的使用实例(java使用UDP进行数据传输)的相关文章

netty的Udp单播、组播、广播实例+Java的Udp单播、组播、广播实例

网络上缺乏netty的udp的单播.组播案例,经过一番学习总结之后终于把这两个案例调通,下面把这两个案例的代码放在这里分享一下. 首先推荐博文: http://colobu.com/2014/10/21/udp-and-unicast-multicast-broadcast-anycast/#Netty%E4%B8%8E%E5%8D%95%E6%92%AD%EF%BC%8C%E7%BB%84%E6%92%AD netty的Udp单播.组播.广播实例+Java的Udp单播.组播.广播实例, 这些代

Java Networking: UDP DatagramSocket (翻译)

原文:http://tutorials.jenkov.com/java-networking/udp-datagram-sockets.html UDP vs. TCP Sending Data via a DatagramSocket Receiving Data via a DatagramSocket DatagramSocket's are Java's mechanism for network communication via UDP instead of TCP. UDP is

java使用UDP

Java中通信可以使用的协议包括TCP协议和UDP协议 UDP协议概念 UDP协议的全称是用户数据报协议 ,在网络中它与TCP协议一样用于处理数据包,但它是一种无连接的协议.在OSI模型中,在第四层--传输层,处于IP协议的上一层.UDP有不提供数据包分组.组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的. 综上所述:UDP不提供可靠地保证,保证数据准确按序到达目的地 为什么要使用UDP 在选择使用协议的时候,选择UDP必须要谨慎?在网络质量令人不十分满

Java TCP/UDP socket 编程流程总结

最近正好学习了一点用java socket编程的东西.感觉整体的流程虽然不是很繁琐,但是也值得好好总结一下. Socket Socket可以说是一种针对网络的抽象,应用通过它可以来针对网络读写数据.就像通过一个文件的file handler就可以都写数据到存储设备上一样.根据TCP协议和UDP协议的不同,在网络编程方面就有面向两个协议的不同socket,一个是面向字节流的一个是面向报文的. 对socket的本身组成倒是比较好理解.既然是应用通过socket通信,肯定就有一个服务器端和一个客户端.

Java 中UDP原理机制及实现方式介绍(建议阅读者阅读前了解下Java的基础知识,一方便理解)

1.基本概念介绍: 首先得简单介绍下UDP. UDP( User Datagram Protocol )协议是用户数据报,在网络中它与TCP协议一样用于处理数据包.在OSI模型中,在第四层——传输层,处于IP协议的上一层.它是一种无连接的协议,每个数据报都是一个独立的信息,包括完整的源或目的地址,它在网络上以任何可能的路径传往目的地,因此能否到达目的地,到达目的地的时间以及内容的正确性都是不能被保证的 但是这种协议却是方便快捷的,因此很多通信工具和游戏仍然采用这种通信方式,虽然有时会出现数据丢帧

JAVA实现UDP组播聊天程序

分类: Java 一.实验环境 编程语言:Java1.5(运行在JVM(Java Virsual Machine)) 开发工具:eclipce3.2 测试环境:局域网 二.实验目的 社会已经进入信息时代,网络技术在飞速发展.大量应用都依赖于从一个主机向多个主机或者从多个主机向多个主机发送同一信息的能力,在Internet上分布的数目可能达数十万台,这些都需要更高的带宽,并且大大超出了单播的能力.一种能最大限度地利用现有带宽的重要技术是IP组播. 三.组播聊天程序的实现: /** * 该程序实现了

[java]基于UDP的Socket通信Demo

java课编程作业:在老师给的demo的基础上实现客户端发送数据到服务器端,服务器端接受客户端后进行数据广播. 整体功能类似于聊天室,代码部分不是太难,但是在本机测试的时候出现这样的问题: 服务端通过将每一个Socket客户端的IP存入Set集合,每次接受到数据后都向当前所有的IP转发.但是本机演示的时候所有开的ChatClient客户端都是同一IP,怎么测试呢? 解决办法就是本机测试时候服务端向多个不同的端口转发就好了,这样跑起来的客户端是在不同端口上进行监听的(只是为了实现广播,实际应用下还

java使用UDP协议传输数据

UDP协议(User Datagram Protocol,用户数据报协议)不同于TCP协议,它是不可能靠的,但是它比TCP协议具有更快的传输速度,UDP发送的数据单元称为数据报,当网络传输UDP传输UDP数据报是无法保证数据能够到达目的地,也无法保证按发送的顺序到达目的地,也就是说先发送了"hello",再发送了"world",但接收方可能会先收到"world",再收到"hello",也有可能收不到数据,为什么呢?因为它是不可

[Java] Tcp/udp 简单通信

本文转自  我自己的博客guozeyiblog.cn 欢迎来访 效果图: //UDP通信 import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.IOException; import java.net.*; import javax.swing.*; class send extends JFrame implements ActionL