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

客户端:

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);
} }

最新文章

  1. Mono产品生命周期
  2. Linux多线程编程
  3. gradle项目与maven项目相互转化
  4. SQL Server 2008 R2——T-SQL 存储过程 返回表
  5. brctl 的使用
  6. shell 入门教程
  7. spring+springmvc+mybatis+oracle+atomikos+jta实现多数据源事务管理
  8. jquery如此强大,为什么还要写原生呢?
  9. Centos MySQL数据库迁移详细步骤
  10. Centos7下安装PHP5.5,5.6,7.0----(转载记录一下)
  11. 安卓Listview和Adapter数据设计
  12. ZOJ_3950_How Many Nines 解题报告及如何对程序进行测试修改
  13. GOLANG错误处理最佳方案errors wrap, Defer, Panic, and Recover
  14. code4906 删数问题
  15. .NET 4中的多线程编程之一:使用Task(转载)
  16. 强制删除一个Windows服务
  17. CLS(公共语言规范)的CLSCompliant(跨语言调用)
  18. Linux命令(基础1)
  19. 笔记:Why don't you pull up a chair and give this lifestyle a try?
  20. C语言 scanf函数

热门文章

  1. Win10《芒果TV》跨年邀你嗨唱,同步直播《湖南卫视2017-2018跨年演唱会》
  2. C# SQL数据库的访问类
  3. Cannot read property 'apply' of undefined
  4. Android零基础入门第84节:引入Fragment原来是这么回事
  5. GzipStream的简单使用压缩和解压
  6. Screensiz.es站收集整理了移动端的相关尺寸。
  7. getch(),getche(),getchar()的区别
  8. ios开发系列之内存泄漏分析(上)
  9. vue项目实现表格导出excel表格
  10. web页面加载速度缓慢,如何优化?