最简单的socket 与物流网的传感器交换数据

2023-05-16

做个笔记

最简单的socket 要与物流网的传感器交换数据

登录分为用户登录 与 设备登录

1、用户登录 (SSLSOCKET)
{“M”:“login”,“ID”:“xx1”,“K”:“xx2”}\n //json格式
最简单的SSLSocket 基本测试可用

public class net {

	public static void main(String[] args) throws InterruptedException, NoSuchAlgorithmException,
			KeyManagementException, UnknownHostException, IOException {

		X509TrustManager x509m = new X509TrustManager() {

			// 返回受信任的X509证书数组
			@Override
			public X509Certificate[] getAcceptedIssuers() {
				return null;
			}

			/*
			 * 该方法检查服务器的证书,若不信任该证书同样抛出异常。通过自己实现该方法,可以使之信任我们指定的任何证书。
			 * 在实现该方法时,也可以简单的不做任何处理,即一个空的函数体,由于不会抛出异常,它就会信任任何证书。
			 */
			@Override
			public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
			}

			/*
			 * 该方法检查客户端的证书,若不信任该证书则抛出异常。由于我们不需要对客户端进行认证,
			 * 因此我们只需要执行默认的信任管理器的这个方法。JSSE中,默认的信任管理器类为TrustManager。
			 */
			@Override
			public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
			}
		};

		SSLContext s = SSLContext.getInstance("SSL");
		s.init(null, new TrustManager[] { x509m }, new java.security.SecureRandom());
		SSLSocketFactory factory = s.getSocketFactory();

		SSLSocket socket = (SSLSocket) factory.createSocket("www.bigiot.net", 8585);//SSL登录地址

		OutputStreamWriter out = new OutputStreamWriter(socket.getOutputStream());
		BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));

		System.out.println("内容为:" + in.readLine());// 服务器连接成功返回信息
		out.write(("{\"M\":\"login\",\"ID\":\"xxx\",\"K\":\"xxx\"}\n"));//json格式直接转义
		out.flush();
		System.out.println("内容为:" + in.readLine());// 服务器登录成功返回信息
		while (true) {

			System.out.println("内容为:" + in.readLine());// 接受服务器转发过来的信息

		}
   }
}

1、设备登录 模拟传感器(SOCKET)
{“M”:“checkin”,“ID”:“xx1”,“K”:“xx2”}\n //json格式

public class net {

	public static void main(String[] args) {
	 int key = 1;
		try {
			Socket socket = new Socket("www.bigiot.net", 8181);// 打开接口
		    OutputStreamWriter out = new OutputStreamWriter(socket.getOutputStream());
		    BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
			while (key == 1) {
				Scanner input = new Scanner(System.in);
				System.out.println("输入命令, 按下回车键。");
				int ss = input.nextInt();
				
				if (socket.isConnected()) {
					switch (ss) {
					case 1:
						break;
					case 2:
	                    out.write(("{\"M\":\"checkin\",\"ID\":\"xxx\",\"K\":\"xxxxx\"}\n"));break;	
					case 3:
						out.write("{\"M\":\"status\"}\n");break;//检查状态		
					case 4:
						out.write("{\"M\":\"update\",\"ID\":\"xxxx\",\"V\":{\"17435\":\"35\"}}\n");break;
						//模拟传感器发送数据到服务器 这个数据被用户接收		
				case 5:
						key = 0;
						input.close();
						socket.close();// 关闭客户端
						System.out.println("关闭客户端");
						break;
					}
				}
				out.flush();
				System.out.println("内容为:" + in.readLine());
		}
		}
		catch (IOException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
	}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

最简单的socket 与物流网的传感器交换数据 的相关文章

  • java中的Socket编程

    基于Socket的java网络编程 网络上的两个程序通过一个双向的通讯连接实现数据的交换 这个双向链路的一端成为一个socket Socket通常用来实现客户方和服务方的连接 Socket是TCP IP协议的一个十分流行的编程界面 一个so
  • python学习笔记—— socket编程

    上篇 https blog csdn net qq 42489308 article details 89388112 socket编程 什么是socket 简称套接字 是进程间通信的一种方式 它与其他进程间通信的一个主要不同是 它能实现不
  • C#基础知识篇:C#网络编程(Socket)使用poll函数判断连接断开问题

    C Socket使用poll函数判断连接断开问题 最近在学习c 的网络编程内容 遇到这样一个问题 在服务器端 如何判断客户端的一个连接是否断开 查找相关资料 得出较好的解决方案是使用socket对象的poll函数 poll函数分析 下面是p
  • Libevent3——bufferevent上创建socket通信的服务器端、客户端的流程、及服务器端、客户端的代码实现分析⛽

    承接上文 服务器监听流程简要如下 创建监听器 有客户端连上时就是满足条件的时候 监听器的回调函数被调用 回调函数会创建新的用于通信的文件描述符fd 那么fd是需要被封装到一个bufferevent对象中 所以再创建一个bev对象对fd进行封
  • QT中UDPSocket丢包问题

    1 配置和编程 下位机向上位机发送UDP数据包 由于UDP小包不能写太大 每个小包也就1kB左右 下位机周期性地发送数据 每个周期发送数百个udp包 并且是使用while死循环来发送的 上位机使用QUdpSocket类接收UDP数据 采用信
  • 优雅地断开TCP连接

    socket关闭 close 和shutdown 的差异 对于一个tcp连接 在c语言里一般有2种方法可以将其关闭 close sock fd 或者 shutdown sock fd 多数情况下这2个方法的效果没有区别 可以互换使用 除了
  • 读书笔记_《Linux高性能服务器编程》_第 5 章:网络编程基础API

    第 5 章 Linux网络编程基础API 知识要点 socket 地址 API socket 基础 API 网络信息 API 1 socket 地址API 主机字节序和网络字节序 CPU 32位 的累加器一次至少可以装载 4 字节 即一个整
  • Qt4代码移植Qt5时的 QTcpServer 64位 BUG

    原Qt4上接口代码如下 void QTcpServer incomingConnection int socketDescriptor 移植到Qt5后 BUG现象就是 用MinGW32位编译出来的程序 QTcpServer工作正常 但用Mi
  • ‘windows socket error:由于目标机器积极拒绝,无法连接。(10061),on API 'connect'的错误?

    1 gt 连接时出现 windows socket error 10061 on API connect 是SOCKET没有启动 SCKTSRVR EXE 或者无法连接到服务器 端口等 使用socketconnect很简单 只要在应用服务器
  • 带外数据

    定义带 外 数据 想 像一下在银行人们排起队等待处理他们的帐单 在这个队伍中每个人最后都会移到前面由出纳员进行服务 现在想像一下一个走入银行 越过整个队伍 然后用枪抵 住出纳员 这个就可以看作为带 外 数据 这个强盗越过整个队伍 是因为这把
  • select 模型解释

    套接字模式 阻塞套接字和非阻塞套接字 或者叫同步套接字和异步套接字 套接字模型 描述如何对套接字的I O行为进行管理 Winsock提供的I O模型一共有五种 select WSAAsyncSelect WSAEventSelect Ove
  • IOS 网络初探(一) - NSURLConnection

    在IOS中 除了最基本的socket外 苹果提供了NSURLConnection类来实现网络通信 请求服务器数据 GET方式 请求服务器数据分成异步和同步两种方式 先来看看异步 非阻塞 NSURL url NSURL URLWithStri
  • Unity使用C#实现简单Scoket连接及服务端与客户端通讯

    简介 网络编程是个很有意思的事情 偶然翻出来很久之前刚开始看Socket的时候写的一个实例 贴出来吧 Unity中实现简单的Socket连接 c 中提供了丰富的API 直接上代码 服务端代码 Thread connectThread 当前服
  • 使用socket判断http请求或http响应的传输结束

    使用socket判断http请求或http响应的传输结束 先把header直到 r n r n整个地收下来 1 传输完毕就关闭connection 即recv收到0个字节 2 有内容 if Transfer Encoding chunked
  • Java swing + socket 写的一个五子棋网络对战游戏

    自从开始接触Swing以来 就喜欢写写各种管理系统 写多了就萌生了一种类似于实时在线对战的游戏 经过一番构思后就开始着手设计这个网络对战版本的五子棋了 游戏代码包含两部分 常规的C S模式 C代表客户端 S代表服务端 下载代码后先启动服务器
  • java-使用newTaskFor封装任务中非标准取消

    1 使用newTaskFor钩子函数来改进用来封装非标准取消的方法 这是ThreadPoolExecutor的新特性 2 当提交一个callable给ExecutorService时 submit返回一个Future 可以用Future来取
  • Java中的NIO和IO的对比分析

    总的来说 java中的IO和NIO主要有三点区别 IO NIO 面向流 面向缓冲 阻塞IO 非阻塞IO 无 选择器 Selectors 1 面向流与面向缓冲 Java NIO和IO之间第一个最大的区别是 IO是面向流的 NIO是面向缓冲区的
  • java Socket 简单实现客户端与服务器间通信(仿聊天室)

    java Socket TCP协议简单实现客户端与服务器间的通信 打赏 执行效果 启动服务器和3个客户端 进行群聊和私聊 执行过程 服务端 首先创建服务器套接字ServerSocket对象并绑定端口 启动服务器 然后ServerSocket
  • C++知识分享: Socket 编程详解,万字长文

    介绍 Socket编程让你沮丧吗 从man pages中很难得到有用的信息吗 你想跟上时代去编Internet相关的程序 但是为你在调用 connect 前的bind 的结构而不知所措 等等 好在我已经将这些事完成了 我将和所有人共享我的知
  • 项目3:(9)与安川控制器P3000通信模块代码

    1 common h 通信传输的IP地址 typedef struct char serverIp 16 int iPort CONNINFO 定义连接信息数据结构 定义发送数据的结构体 typedef struct double R Bo

随机推荐

  • C++运算符重载中有些方法为什么需要定义为友元函数

    C 43 43 提供运算符重载主要目的 xff1a 希望对象之间的运算看起来可以和编译器内置类型一样丝滑 xff1b 相当于是告知编译器 xff0c 类对象之间运算应该如何去做处理 通过实现一个复数类 xff0c 来阐述本文章的主题 xff
  • linux网络编程之socket,bind,listen,connect,accept

    socket span class token macro property span class token directive hash span span class token directive keyword include s
  • Linux网络发送和接收内核缓冲区大小的设置

    socket属性 xff1a SO SNDBUF 发送缓冲区 SO SNDBUF Sets or gets the maximum socket send buffer span class token keyword in span by
  • docker查看运行时容器的IP地址

    使用inspect来查看容器的信息 span class token function docker span inspect span class token punctuation span docker name span class
  • python基础梳理(一)

    一 python程序的组成 表达式 xff1a 建立并且处理数据对象且能返回数据对象的引用关系 示例 xff1a 1 43 2 系统会产生1和2俩个对象 xff0c 并且进行处理生产对象3 xff0c 将对象3返回回去 二 核心的数字类型
  • 串级PID结构及参数调整见解

    在设计控制系统中 xff0c 常用的控制算法为PID xff0c 即比例 积分 微分控制器 能够实现对控制对象的物理特性的控制 xff0c 以期达到特定的运行效果 此外由于PID控制器的灵活特性 xff0c 可以与其它控制算法进行灵活的组合
  • freeRTOS 开启关闭调度器、挂起恢复调度器、vTaskStepTick

    1 开启调度器 br vTaskStartScheduler 43 vPortSetupTimerInterrupt 设置systick xff0c 初始化低功耗运行系统补偿时间 br 43 xPortStartScheduler 43 p
  • 通过Flask框架封装Tushare获取的日线股票数据

    概要介绍 概要介绍 xff08 TuShare id 282782 xff09 当我们需要进行量化交易分析 xff0c 或者通过代码进行股票的数据计算 xff0c 研究金融时 xff0c 我们需要获取最基本的股票价格 xff0c 开盘价收盘
  • linux系统安装硬盘分区建议

    笔者使用linux也很长时间了 xff0c 但总有在使用一段时间之后感觉系统分区不是很合理 xff0c 这里就算是给自己总结一下 xff0c 也跟大家一起分享吧 一 常见挂载点的情况说明 一般来说 xff0c 在linux系统中都有最少两个
  • Python3.4简单爬虫实现之抓取糗事百科段子

    网上的python教程大都是2 X版本的 xff0c python2 X和python3 X相比较改动比较大 xff0c 好多库的用法不太一样 xff0c 我安装的是3 4 1 xff0c 就用3 4 1实现一下网页内容抓取 首先是库 xf
  • 关于stm32中串口重定向问题详解(找个时间好好理解下)

    usart这部分代码我也是从网上copy出来的 xff0c 一下是作者的解释 xff1a 简单地说 xff1a 想在mdk 中用printf xff0c 需要同时重定义fputc函数和避免使用semihosting 半主机模式 xff09
  • http解析库http-parser

    一 http parser简介 1 简介 http parser是一个用C编写的HTTP消息解析器 xff0c 可以解析请求和响应 xff0c 被设计用于高性能HTTP应用程序 它不会进行任何系统调用及内存分配 xff0c 它不会缓冲数据
  • centos系统重置root密码,忘记密码修改

    1 开机按下Ecs键 xff0c 进入如下界面 2 根据需要选择系统内核版本并按e键 3 光标移动到 linux 16 开头的行 xff0c 找到 ro 改为 rw init 61 sysroot bin sh xff1b 4 按 Ctrl
  • summary1 如何在Python中创建基本的ROS节点[AI]

    本课程结束时 xff0c 您将能够 xff1a 1 在模拟中 xff0c 使用ROS控制TurtleBot3机器人 2 使用roslaunch和rosrun启动ROS应用程序 3 使用关键ROS命令行工具询问正在运行的ROS应用程序 4 创
  • switch case语句用法

    一般情况下 xff0c 判断语句常用的有if else xff0c 三目运算符 xff0c 还有switch case等 xff0c 根据不同需求使用其判断语句 下面以简单示例展示 xff1a 在输入框中输入数字 xff0c 判断其星期几
  • 四轴飞行器基础

    原文知识来自果壳网 四轴飞行器基础篇 xff0c 进行一些适量增删 基本原理与名词解释 1 遥控器篇 通道 通道就是可以遥控器控制的动作路数 xff0c 比如遥控器只能控制四轴上下飞 xff0c 那么就是1个通道 但四轴在控制过程中需要控制
  • OPENWRT,爱快等软路由推荐

    这种用于路由器的开源固件 操作系统可以让它获得大多数路由器所不具备的功能 xff0c 甚至可以把一台旧PC变成强大的路由器或防火墙设备 软路由提供的一些特性和功能包括带宽监控 VLAN支持 高级无线设置 VPN集成 高级安全等等 在这篇文章
  • freeRTOS 时间管理

    1 相对时间延时 br vTaskDelay gt prvAddCurrentTaskToDelayedList 函数分析之后 xff0c 有步骤解析 br 为什么使用两个延时列表 xff1f br br br 2 绝对时间延时 br Pr
  • 美团笔试题_20220409

    前言 笔试一共五道编程题 xff08 四 43 一 xff09 xff0c 一为专项编程题 xff0c 估计不同岗位有题目不一样 xff0c 使用的是赛码网 xff0c 允许跳出界面使用自己的IDE 在此感谢筱羊冰冰提供的部分题目及题解 题
  • 最简单的socket 与物流网的传感器交换数据

    做个笔记 最简单的socket 要与物流网的传感器交换数据 登录分为用户登录 与 设备登录 1 用户登录 xff08 SSLSOCKET xff09 M login ID xx1 K xx2 n json格式 最简单的SSLSocket 基