资讯专栏INFORMATION COLUMN

模拟Syslog客户端UDP发送日志

Eidesen / 2459人阅读

摘要:上一篇,我初步整理了服务端接收日志的例子,本篇主要是对客户端模拟操作的一个基本例子。

上一篇,我初步整理了Syslog服务端接收日志的例子,本篇主要是对客户端模拟操作的一个基本例子。

package com.tony.util;
import java.io.*;    
import java.net.*;    
    
/**
 * UDP客户端程序,用于对服务端发送数据,并接收服务端的回应信息.   
 * Title: SyslogClient
 * Description: none
 * Copyright @ 2012~2015 HP
* @author Tony * @createDate 2015年8月18日 * @version v1.0 */ public class SyslogClient { private byte[] buffer = new byte[1024]; private DatagramSocket ds = null; /** * 构造函数,创建UDP客户端 * @throws Exception */ public SyslogClient() throws Exception { ds = new DatagramSocket(); } /** * 设置超时时间,该方法必须在bind方法之后使用. * @param timeout 超时时间 * @throws Exception */ public final void setSoTimeout(final int timeout) throws Exception { ds.setSoTimeout(timeout); } /** * 获得超时时间. * @return 返回超时时间 * @throws Exception */ public final int getSoTimeout() throws Exception { return ds.getSoTimeout(); } public final DatagramSocket getSocket() { return ds; } /** * 接收从指定的服务端发回的数据. * @param lhost 服务端主机 * @param lport 服务端端口 * @return 返回从指定的服务端发回的数据. * @throws Exception */ public final String receive(final String lhost, final int lport) throws Exception { DatagramPacket dp = new DatagramPacket(buffer, buffer.length); ds.receive(dp); String info = new String(dp.getData(), 0, dp.getLength()); return info; } /** * 关闭udp连接. */ public final void close() { try { ds.close(); } catch (Exception ex) { ex.printStackTrace(); } } /** * 向指定的服务端发送数据信息. * @param host 服务器主机地址 * @param port 服务端端口 * @param bytes 发送的数据信息 * @return 返回构造后俄数据报 * @throws IOException */ public final DatagramPacket send(final String host, final int port, final byte[] bytes) throws IOException { DatagramPacket dp = new DatagramPacket(bytes, bytes.length, InetAddress .getByName(host), port); ds.send(dp); return dp; } /** * 测试客户端发包和接收回应信息的方法. * @param args * @throws Exception */ public static void main(String[] args) throws Exception { SyslogClient client = new SyslogClient(); //这里我们在本机测试,使用本机IP即可 String serverHost = "127.0.0.1"; int serverPort = 514; client.send(serverHost, serverPort, ("什么都可以的接收参数").getBytes()); String info = client.receive(serverHost, serverPort); System.out.println("服务端回应数据:" + info); } }

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/64518.html

相关文章

  • Syslog服务端UDP接收日志

    总体来说,如果做企业级日志管理分析,我们第一步就需要接入设备的日志,而大部分的操作系统都是支持syslog的,一般我们对日志这种敏感级别不是很高的信息通过UDP的形式从客户机发送到syslog接收服务器,syslog我们一般不会主动去采集,而是当客户机上有操作时产生的日志会自动发送到syslog接收服务器。下面是一个接收syslog的例子。 package com.tony.util; impor...

    mingde 评论0 收藏0
  • Linux环境下使用rsyslog管理日志

    摘要:通过网络发送可以使用网络将日志消息发送或者接受日志,使用这个特性,可以实现使用单一的日志服务器统一管理多台服务器日志。这里的告诉使用协议发送日志,要使用的话,使用。 在 Linux 系统中,日志文件记录了系统中包括内核、服务和其它应用程序等在内的运行信息。在我们解决问题的时候,日志是非常有用的,它可以帮助我们快速的定位遇到的问题。 在 Cent OS 6中,日志是使用rsyslogd守...

    snifes 评论0 收藏0
  • Linux环境下使用rsyslog管理日志

    摘要:通过网络发送可以使用网络将日志消息发送或者接受日志,使用这个特性,可以实现使用单一的日志服务器统一管理多台服务器日志。这里的告诉使用协议发送日志,要使用的话,使用。 在 Linux 系统中,日志文件记录了系统中包括内核、服务和其它应用程序等在内的运行信息。在我们解决问题的时候,日志是非常有用的,它可以帮助我们快速的定位遇到的问题。 在 Cent OS 6中,日志是使用rsyslogd守...

    赵连江 评论0 收藏0
  • Nginx 日志自定义记录及启用日志缓冲区

    摘要:给出的日志等级顺序就是记录最小到最严谨的日志等级顺序。错误日志格式不支持自定义日志格式但他同样记录当前时间日志等级和具体信息等数据。日志缓冲区当系统处于负载状态时,启用日志缓冲区以降低进程阻塞。 原文链接: 何晓东 博客 如果想统计网站的访问来源信息,可以用 php 获取信息,记录到数据库的形式,也可以直接使用 nginx 提供的访问日志,来记录网站的访问详情,管理员可以通过分析 ng...

    mochixuan 评论0 收藏0
  • Nginx 日志自定义记录及启用日志缓冲区

    摘要:给出的日志等级顺序就是记录最小到最严谨的日志等级顺序。错误日志格式不支持自定义日志格式但他同样记录当前时间日志等级和具体信息等数据。日志缓冲区当系统处于负载状态时,启用日志缓冲区以降低进程阻塞。 原文链接: 何晓东 博客 如果想统计网站的访问来源信息,可以用 php 获取信息,记录到数据库的形式,也可以直接使用 nginx 提供的访问日志,来记录网站的访问详情,管理员可以通过分析 ng...

    jzzlee 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<