zoukankan      html  css  js  c++  java
  • syslog客户端java实现

      1 //package com.tony.util;
      2 import java.io.*;    
      3 import java.net.*;    
      4     
      5 /**
      6  * UDP客户端程序,用于对服务端发送数据,并接收服务端的回应信息.   
      7  * Title: SyslogClient
      8  * Description: none
      9  * Copyright @ 2012~2015 HP<br>
     10  * @author Tony
     11  * @createDate 2015年8月18日
     12  * @version v1.0
     13  */
     14 public class SyslogClient {    
     15     private byte[] buffer = new byte[1024];    
     16     
     17     private DatagramSocket ds = null;    
     18     
     19     /**  
     20      * 构造函数,创建UDP客户端  
     21      * @throws Exception  
     22      */    
     23     public SyslogClient() throws Exception {    
     24         ds = new DatagramSocket();    
     25     }    
     26         
     27     /**  
     28      * 设置超时时间,该方法必须在bind方法之后使用.  
     29      * @param timeout 超时时间  
     30      * @throws Exception  
     31      */    
     32     public final void setSoTimeout(final int timeout) throws Exception {    
     33         ds.setSoTimeout(timeout);    
     34     }    
     35     
     36     /**  
     37      * 获得超时时间.  
     38      * @return 返回超时时间  
     39      * @throws Exception  
     40      */    
     41     public final int getSoTimeout() throws Exception {    
     42         return ds.getSoTimeout();    
     43     }    
     44     
     45     public final DatagramSocket getSocket() {    
     46         return ds;    
     47     }    
     48  
     49     /**  
     50      * 接收从指定的服务端发回的数据.  
     51      * @param lhost 服务端主机  
     52      * @param lport 服务端端口  
     53      * @return 返回从指定的服务端发回的数据.  
     54      * @throws Exception  
     55      */    
     56     public final String receive(final String lhost, final int lport)    
     57             throws Exception {    
     58         DatagramPacket dp = new DatagramPacket(buffer, buffer.length);    
     59         ds.receive(dp);    
     60         String info = new String(dp.getData(), 0, dp.getLength());    
     61         return info;    
     62     }    
     63     
     64     /**  
     65      * 关闭udp连接.  
     66      */    
     67     public final void close() {    
     68         try {    
     69             ds.close();    
     70         } catch (Exception ex) {    
     71             ex.printStackTrace();    
     72         }    
     73     }   
     74     
     75     /**  
     76      * 向指定的服务端发送数据信息.  
     77      * @param host 服务器主机地址  
     78      * @param port 服务端端口  
     79      * @param bytes 发送的数据信息  
     80      * @return 返回构造后俄数据报  
     81      * @throws IOException  
     82      */    
     83     public final DatagramPacket send(final String host, final int port,    
     84             final byte[] bytes) throws IOException {    
     85         DatagramPacket dp = new DatagramPacket(bytes, bytes.length, InetAddress    
     86                 .getByName(host), port);    
     87         ds.send(dp);    
     88         return dp;    
     89     }
     90     
     91     /**  
     92      * 测试客户端发包和接收回应信息的方法.  
     93      * @param args  
     94      * @throws Exception  
     95      */    
     96     public static void main(String[] args) throws Exception {    
     97         SyslogClient client = new SyslogClient();   
     98         //这里我们在本机测试,使用本机IP即可
     99         String serverHost = "192.168.2.71";    
    100         int serverPort = 514;  
    101         int i = 0;
    102         while (true){
    103             String log = "test syslog --- " + i++;
    104             client.send(serverHost, serverPort, log.getBytes());   
    105             Thread.sleep(1000);
    106         }
    107      //   String info = client.receive(serverHost, serverPort);    
    108      //   System.out.println("服务端回应数据:" + info);
    109     }    
    110 }  

    通过wireshark抓包:

  • 相关阅读:
    docker+headless+robotframework+jenkins实现web自动化持续集成
    dokcer入门
    dockerfile详解
    全网最全Docker命令详解
    ql的python学习之路-day14
    ql的python学习之路-day13
    ql的python学习之路-day12
    关于python中第三方库安装方法和问题解决
    微信小程序之组件常见的问题
    微信小程序常用代码(1)——tab切换
  • 原文地址:https://www.cnblogs.com/porkerface/p/13048456.html
Copyright © 2011-2022 走看看