对DatagramSocket的使用实例(java使用UDP进行数据传输)
今天刚看懂的一点点东西,记录一下,方便自己回顾
客户端:
Client.java
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException; import org.json.JSONObject; public class Client { private static int port = 7799;//定义端口 数据报要用 private static String IP = "127.0.0.1";//定义IP地址 数据报要用 private static DatagramPacket packet = null;//定义要发送的数据报 public static void main(String[] args) throws IOException{
try(
DatagramSocket socket = new DatagramSocket();//创建UDP套接字 ) {
//将数据使用json编码发送
JSONObject jsonObject = new JSONObject();//创建json对象
jsonObject.put("test","hello");//给json对象插入数据 //初始化要发送的数据报参数为 {字节数组}{长度}{地址}{端口}
packet = new DatagramPacket(new byte[0], 0, InetAddress.getByName(IP), port);
//数据报应该包含发送的目的地址和端口号 byte[] test = jsonObject.toString().getBytes();//把json对象转换为字节码并存入字节数组中 packet.setData(test);//为要发送的数据包指定字节数组(要发送的数据) socket.send(packet);//发送数据包
}
catch (SocketException e) {
e.printStackTrace();
} }
}
服务端
server.java
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket; import org.json.JSONObject; public class server {
private static int port = 7799;
private String IP = "127.0.0.1";
//创建字节数组准备接收数据
private static byte[] test = new byte[1024];
private static DatagramPacket packet = new DatagramPacket(test,test.length); public static void main(String[] args) throws IOException { DatagramSocket socket = new DatagramSocket(port);//创建UDP套接字
socket.receive(packet);//接受数据报 String hell = new String(test, 0, test.length);//将收到的数据存在字符串中
JSONObject jsonObject = new JSONObject(hell);//获得存储数据的字符串的json编码
System.out.println(jsonObject);
String str = jsonObject.getString("test");//获取json编码中test对象的值
System.out.println(str);
} }
对DatagramSocket的使用实例(java使用UDP进行数据传输)的更多相关文章
- netty的Udp单播、组播、广播实例+Java的Udp单播、组播、广播实例
网络上缺乏netty的udp的单播.组播案例,经过一番学习总结之后终于把这两个案例调通,下面把这两个案例的代码放在这里分享一下. 首先推荐博文: http://colobu.com/2014/10/2 ...
- Java Networking: UDP DatagramSocket (翻译)
原文:http://tutorials.jenkov.com/java-networking/udp-datagram-sockets.html UDP vs. TCP Sending Data vi ...
- Java 中UDP原理机制及实现方式介绍(建议阅读者阅读前了解下Java的基础知识,一方便理解)
1.基本概念介绍: 首先得简单介绍下UDP. UDP( User Datagram Protocol )协议是用户数据报,在网络中它与TCP协议一样用于处理数据包.在OSI模型中,在第四层——传输层, ...
- Java实现UDP之Echo客户端和服务端
Java实现UDP之Echo客户端和服务端 代码内容 采用UDP协议编写服务器端代码(端口任意) 编写客户机的代码访问该端口 客户机按行输入 服务器将收到的字符流和接收到的时间输出在服务器consol ...
- Java TCP/UDP网络通信编程
本文转自:http://www.cnblogs.com/cdtarena/archive/2013/04/10/3012282.html 网络应用中基本上都是TCP(Transmission Cont ...
- Java使用UDP发送数据到InfluxDB
最近在做压测引擎相关的开发,需要将聚合数据发送到InfluxDB保存以便实时分析和控制QPS. 下面介绍对InfluxDB的使用. 什么是InfluxDB InfluxDB是一款用Go语言编写的开源分 ...
- Java Socket UDP编程
package com; import java.io.IOException; import java.net.*; /** * UDP Client * * Created by Administ ...
- PL/SQL 调用JAVA使用UDP发送数据
步骤如下 1.直接在SQL命令中写入JAVA代码(用SYS帐号执行,不然权限等太麻烦) create or replace and resolve java source named udp as i ...
- Java中UDP协议的基本原理和简单用法
UDP协议是非面向连接的,相对于TCP协议效率较高,但是不安全.UDP协议类似发信息的过程,不管接收方是在线还是关机状态,都会把信息发送出去.但是如果接收方不处于接收信息的状态,发送出去的数据包就会丢 ...
随机推荐
- 活锁(livelock) 专题
活锁(livelock) 活锁指的是任务或者执行者没有被阻塞,由于某些条件没有满足,导致一直重复尝试,失败,尝试,失败. 活锁和死锁的区别在于,处于活锁的实体是在不断的改变状态,所谓的“活”, 而处于 ...
- 程序异常崩溃后用windbg辅助调试解决的经验 以及 堆栈问题调试经验
1,程序异常崩溃后用windbg辅助调试解决的经验 状况:我的程序调用别人的库做 文件写入工作. 在这一过程中出现异常,程序崩溃. 经反复检查,认为自己的程序没有错,但无法判断在别人库里哪里有错. ...
- linux清除日志文件
#!/bin/bash # 清除log文件 LOG_DIR=/var/log ROOT_UID= # $UID为0的时候,用户才具有root用户的权限 LINES= # 默认的保存行数 E_XCD= ...
- 用JavaScriptSerializer解析JSON
引用System.Web.Extensions using System.Web.Script.Serialization; var serializer = new JavaScriptSerial ...
- BoxedApp Packer 将您的原始应用“打包”成单个完全的可执行二进制文件
及时应对移动化趋势 在没有安装到本地硬盘驱动的情况下,使用闪存卡.网络文件夹或者可移动磁盘远程启动应用程序通常是一件令人头疼的事,你会发现,应用程序会突然会丢失文件.路径错误或者远程注册表故障等一系列 ...
- Qt的QWaitCondition(允许线程在一定条件下唤醒其他线程,这样对不间断上传可能比较适用)
对生产者和消费者问题的另一个解决办法是使用QWaitCondition,它允许线程在一定条件下唤醒其他线程.其中wakeOne()函数在条件满足时随机唤醒一个等待线程,而wakeAll()函数则在条件 ...
- Qt设置窗体的透明度: setWindowOpacity
在Qt中,设置窗体透明度的函数有:void setWindowOpacity(qreal level) 特性: 透明度的有效范围从1.0(完全不透明)到0.0(完全透明的). 默认情况下,此属 ...
- 【Linux】Linux相关资料
linux相关技术资料: linux技术资料大全: http://t.cn/zYNBwFs
- Excel报表开发(本节主要讲述导出到Excel操作)
一.Excel导入到GridView以及数据库操作比较简单,这儿不做过多讲解,需要注意的有二点: 1.设置IMEX=1将强制混合数据转换为文本. 2.解决Excel驱动程序默认读取8行:将" ...
- Android-小小设置永久解决程序因为未捕获异常而异常终止的问题
(一) 前言各位亲爱的午饭童鞋,是不是经常因为自己的程序中出现未层捕获的异常导致程序异常终止而痛苦不已?嗯,是的.. 但是,大家不要怕,今天给大家分享一个东东可以解决大家这种困扰,吼吼! (二) Un ...