当前位置:   article > 正文

MySQL数据库(二)服务器特定端口的数据流监听_监听数据库端口分析流量

监听数据库端口分析流量

服务器特定端口的数据流监听

本文主要针对本人在NB-IoT项目中有关数据库的开发和使用,进行一些粗浅的学习指导。欢迎大家在评论区批评指正,感谢!


前言

随着NB-IoT的不断发展,数据成为了生活中密不可分的一部分,而数据库作为存储数据的地方,高效快速的对数据进行读写操作具有十分重要的现实意义。那么,如何将底层的数据准确无误的存储到数据库中呢?


提示:以下是本篇文章正文内容,下面案例可供参考

一、JDK的安装

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。
打开JDK安装包:(一般Java项目开发,JDK不需要最新版,旧版的稳定且程序Demo兼容性更好)
在这里插入图片描述
更改安装路径,点击下一步等待安装成功。JDK本身包含JRE,一般不需要重复安装。安装成功后需要配置环境变量(很重要)。
打开我的电脑,右击点击属性,选择高级系统设置后点击环境变量。在这里插入图片描述
在系统变量中添加变量名:JAVA_HOME以及变量值:C:\Program Files (x86)\Java\jdk1.8.0_131。不难看出,此路径为JDK安装路径。
在已有系统变量PATH中添加%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;确认退出后完成环境变量配置。

使用快捷键WIN+R,在输入框中输入cmd后回车,即可打开DOS界面:
输入:java -version 查看java版本信息,若查询成功,则JDK安装成功!
在这里插入图片描述

二、eclipse的安装

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具。
安装包解压后便可使用,本文不做过多赘述。(eclipse版本按照26个字母为首字母来取名字,首字母越靠后版本越新)
在这里插入图片描述

三、基于TCP的socket编程

1.服务端程序

代码如下(示例):

package yzu.java.socket;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
	public static void main(String[] args){
        try{
            //建立套接字
            ServerSocket server = new ServerSocket(5050);
            //监听
            Socket socket = server.accept();
            //建立连接
            InputStreamReader sysIn = new InputStreamReader(System.in);
            BufferedReader sysBuf = new BufferedReader(sysIn);
            InputStreamReader socIn = new InputStreamReader(socket.getInputStream());
            BufferedReader socBuf = new BufferedReader(socIn);
 
            PrintWriter socOut = new PrintWriter(socket.getOutputStream());
            //建立通信
            System.out.println("Client:" + socBuf.readLine());
            String readline = sysBuf.readLine();
            while(!readline.equals("bye")){
                socOut.println(readline);
                socOut.flush();
                System.out.println("Server:" + readline);
 
                String rl = socBuf.readLine();
                if(!rl.equals("ok"))
                    System.out.println("Client:" + rl);
                else
                    break;
                readline = sysBuf.readLine();
            }
            //关闭IO、Socket
            socOut.close();
            socIn.close();
            server.close();
        }catch (Exception e){
            System.out.println("Error" + e);
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46

2.客户端程序

代码如下(示例):

package yzu.java.socket;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;

public class Client {
	 public static void main(String[] args)throws Exception{
	        try{
	            //创建Socket
	            Socket socket = new Socket("127.0.0.1",5050);
	 
	            //建立连接
	            InputStreamReader sysIn = new InputStreamReader(System.in);
	            BufferedReader sysBuf = new BufferedReader(sysIn);	 
	            InputStreamReader socIn = new InputStreamReader(socket.getInputStream());
	            BufferedReader socBuf = new BufferedReader(socIn);
	 
	            PrintWriter socOut = new PrintWriter(socket.getOutputStream());	 
	            //进行通信
	            String readline = sysBuf.readLine();
	            while(!readline.equals("bye")){
	            	socOut.println(readline);
	            	socOut.flush();
	                System.out.println("Client:" + readline);	 
	                System.out.println("Server:" + socBuf.readLine());
	                readline = sysBuf.readLine();
	            }
	            //关闭IO和Socket
	            socOut.close();
	            socIn.close();
	            socket.close();
	        }catch(Exception e){
	            System.out.println("Error:" + e);
	        }
	    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38

四、监听服务器端口获取数据

1、UDP

代码如下(示例):

package yzu.java.socket;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class UDPServer {
    public static void main(String args[]) throws Exception
    {
       DatagramSocket serverSocket = new DatagramSocket(5050);
          byte[] receiveData = new byte[66];
          while(true)
             {
                //构造数据包接收数据
                DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
                //接收数据
                serverSocket.receive(receivePacket);
                //解析数据
                String sentence = new String( receivePacket.getData());
                System.out.println("RECEIVED: " + sentence);
             }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

如下图为:在服务器中监听端口5050,从NB-IoT底层传输到端口的经纬度信息以及温度信息。
在这里插入图片描述

2、TCP

代码如下(示例):

package yzu.java.socket;

import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {     
       public static void main(String args[]) throws IOException {
          //异常外抛
          int port = 5050;
          ServerSocket server = new ServerSocket(port);
          //server尝试接收其他Socket的连接请求,server的accept方法是阻塞式的
          Socket socket = server.accept();
          //跟客户端建立好连接之后,我们就可以获取socket的InputStream,并从中读取客户端发过来的信息了。
          Reader reader = new InputStreamReader(socket.getInputStream());
          char chars[] = new char[64];
          int len;
          StringBuilder sb = new StringBuilder();
          while ((len=reader.read(chars)) != -1) {
             sb.append(new String(chars, 0, len));
          }
          System.out.println("from client: " + sb);      
          reader.close();
          socket.close();
          server.close();
       }    
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/85690
推荐阅读
相关标签
  

闽ICP备14008679号