//package com.tony.util;
import java.io.*;
import java.net.*; /**
* UDP客户端程序,用于对服务端发送数据,并接收服务端的回应信息.
* Title: SyslogClient
* Description: none
* Copyright @ 2012~2015 HP<br>
* @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 = "192.168.2.71";
int serverPort = 514;
int i = 0;
while (true){
String log = "test syslog --- " + i++;
client.send(serverHost, serverPort, log.getBytes());
Thread.sleep(1000);
}
// String info = client.receive(serverHost, serverPort);
// System.out.println("服务端回应数据:" + info);
}
}

通过wireshark抓包:

syslog客户端java实现的更多相关文章

  1. elasticsearch 5.0 获取 TransportClient 操作客户端java API

    本文转载自:http://blog.csdn.net/likui1314159/article/details/53233881 elasticsearch 5.0 获取 TransportClien ...

  2. webservice 的wsdl文件生成客户端java类

    提供两个方法: 第一个: 发布webservice项目后, 地址栏地址  http://localhost:8888/lxitedu.webservice.cxf-ch2/services/userS ...

  3. Redis客户端Java服务接口封装

    最近在学习Redis并集成到Spring中去,发现Spring的RedisTemplate并不好用,还没有MongoTemplate好用. 而且发现Jedis和ShardedJedis的方法非常多,覆 ...

  4. Java邮件服务学习之三:邮箱服务客户端-Java Mail

    一.java mail的两个JAR包 1.mail.jar:不在JDK中,核心功能依赖JDK4及以上,该jar包已经加入到java EE5: 下载地址:http://www.oracle.com/te ...

  5. thrift例子:python客户端/java服务端

    java服务端的代码请看上文. 1.说明: 这两篇文章其实解决的问题是,当使用python去访问大数据线上集群的时候,遇到两个问题: 1)python-hadoop和python-hive相关包链接不 ...

  6. 使用HDFS客户端java api读取hadoop集群上的信息

    本文介绍使用hdfs java api的配置方法. 1.先解决依赖,pom <dependency> <groupId>org.apache.hadoop</groupI ...

  7. Mysql事务开启方式(客户端+java手动+Spring Boot)

    一:概念 作为单个逻辑单元执行一系列操作,要么完全执行,要么完全不执行.举例 我们需要向数据库插入3条数据(我们希望这三条数据要么全部插入成功,要么全部失败), 比如第一条数据插入成功,插入第二条数据 ...

  8. HBase学习笔记1 - 如何编写高性能的客户端Java代码

    转载请标注原链接:http://www.cnblogs.com/xczyd/p/5577124.html 客户在使用HBase的时候,经常会抱怨说写入太慢,并发上不去等等.从前我遇到这种情况,一般都二 ...

  9. java 网络编程 TCP协议 java 服务器和客户端 java socket编程

    一个 HelloWord 级别的 Java Socket 通信的例子.通讯过程:        先启动 Server 端,进入一个死循环以便一直监听某端口是否有连接请求.然后运行 Client 端,客 ...

随机推荐

  1. 数据源管理 | OLAP查询引擎,ClickHouse集群化管理

    本文源码:GitHub·点这里 || GitEE·点这里 一.列式库简介 ClickHouse是俄罗斯的Yandex公司于2016年开源的列式存储数据库(DBMS),主要用于OLAP在线分析处理查询, ...

  2. java 获取请求ip,服务本地ip

    /** * 获取请求IP * * @param request * @return */ public static String getRequestIpAddress(HttpServletReq ...

  3. java 多线程详细笔记(原理理解到全部使用)

    鸽了好久以后终于又更新了,看同学去实习都是先学源码然后修改之类,才发觉只是知道语法怎么用还远远不够,必须要深入理解以后不管是学习还是工作,才能举一反三,快速掌握. 目录 基础知识 进程与线程 线程原子 ...

  4. Failed to start mongod.service: Unit not found

    其实自己用惯的是MYSQL,然后项目最后一步完善数据读写的部分,本来打算用mysql的,然而在centOS系统上发现安装总是出问题,后来查找一下资料,发现centOS系统上一般用的是Mariadb,这 ...

  5. SpringBoot2.x整合quartz实现多任务定时执行

    一.pom文件中导入相关依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifa ...

  6. Java Web项目部署到阿里云服务器(ECS)

    本篇随笔只是记录博主第一次将自己的Java项目部署到阿里云服务器的大致过程,具体细节还请参考别的博文. 一.项目介绍 我做的项目是利用maven项目构建工具进行搭建基于SSM框架的代码共享管理系统,主 ...

  7. Oracle备份与恢复详解

    http://www.360doc.com/content/10/1015/15/3267996_61218717.shtml --------摘自 360doc 为了能有效地备份和恢复数据库,建议大 ...

  8. oracle [精华] 你是否仍迷信rowid分页?

    http://www.itpub.net/thread-1603830-1-1.html

  9. poj1386有向图判断是否存在欧拉回路或者欧拉路

      有向图的图联通是指基图联通,也就是把有向图的边改成无向图然后看是否连通.判断联通可用dfs或者并查集. 题意就是给你n个由小写字母构成的字符串,问你能不能将这n个字符串连接起来,B能接在A后面的条 ...

  10. Java——动态生成POJO类

    package com.java.test.dynamicpojo; import java.io.ByteArrayOutputStream; import java.io.IOException; ...