tio开发udp应用,发100万数据

1、所有的showcase都始于pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<artifactId>tio-udp-showcase</artifactId>
	<name>${project.artifactId}</name>

	<parent>
		<groupId>org.t-io</groupId>
		<artifactId>tio-parent</artifactId>
		<version>3.0.1.v20180601-RELEASE</version>
	</parent>

	<dependencies>
		<dependency>
			<groupId>org.t-io</groupId>
			<artifactId>tio-core</artifactId>
		</dependency>

		<!-- slf4j-logback绑定 -->
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-classic</artifactId>
		</dependency>
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-access</artifactId>
		</dependency>


		<!-- redirect apache commons logging -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>jcl-over-slf4j</artifactId>
		</dependency>
		<!-- redirect jdk util logging -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>jul-to-slf4j</artifactId>
		</dependency>
		<!-- redirect log4j -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>log4j-over-slf4j</artifactId>
		</dependency>

		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.testng</groupId>
			<artifactId>testng</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>
</project>

        2、在服务器端定义一个UdpHandler

package org.tio.showcase.udp.server;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tio.core.Node;
import org.tio.core.udp.UdpPacket;
import org.tio.core.udp.intf.UdpHandler;

/**
 * @author tanyaowu
 */
public class ShowcaseUdpHandler implements UdpHandler {

	private static Logger log = LoggerFactory.getLogger(ShowcaseUdpHandler.class);

	public ShowcaseUdpHandler() {
	}

	@Override
	public void handler(UdpPacket udpPacket, DatagramSocket datagramSocket) {
		byte[] data = udpPacket.getData();
		String msg = new String(data);
		Node remote = udpPacket.getRemote();

		log.info("收到来自{}的消息:【{}】", remote, msg);
		DatagramPacket datagramPacket = new DatagramPacket(data, data.length, new InetSocketAddress(remote.getIp(), remote.getPort()));
		try {
			datagramSocket.send(datagramPacket);
		} catch (Throwable e) {
			log.error(e.toString(), e);
		}
	}
}

        3、服务器启动类

package org.tio.showcase.udp.server;

import java.net.SocketException;

import org.tio.core.udp.UdpServer;
import org.tio.core.udp.UdpServerConf;

/**
 * @author tanyaowu
 *
 */
public class ShowcaseUdpServerStarter {
	/**
	 * @param args
	 * @throws SocketException 
	 */
	public static void main(String[] args) throws SocketException {
		ShowcaseUdpHandler fpmsUdpHandler = new ShowcaseUdpHandler();
		UdpServerConf udpServerConf = new UdpServerConf(3000, fpmsUdpHandler, 5000);
		UdpServer udpServer = new UdpServer(udpServerConf);
		udpServer.start();
	}
}

        4、写个客户端启动类,顺便发上100万条消息

package org.tio.showcase.udp.client;

import org.tio.core.udp.UdpClient;
import org.tio.core.udp.UdpClientConf;

/**
 * @author tanyaowu
 */
public class UdpClientStarter {
	/**
	 * @param args
	 * @author tanyaowu
	 */
	public static void main(String[] args) {
		UdpClientConf udpClientConf = new UdpClientConf("127.0.0.1", 3000, 5000);
		UdpClient udpClient = new UdpClient(udpClientConf);
		udpClient.start();

		long start = System.currentTimeMillis();
		for (int i = 0; i < 1000000; i++) {
			String str = i + "、" + "用tio开发udp,有点意思";
			udpClient.send(str.getBytes());
		}
		long end = System.currentTimeMillis();
		long iv = end - start;
		System.out.println("耗时:" + iv + "ms");
	}
}

        5、启动服务器和客户端

        运行:org.tio.showcase.udp.server.ShowcaseUdpServerStarter.main(String[])

        运行:org.tio.showcase.udp.client.UdpClientStarter.main(String[])

        6、看一下日志

... ...
2018-06-04 13:53:05,682 INFO  o.t.s.u.s.ShowcaseUdpHandler[29]: 收到来自127.0.0.1:50837的消息:【999962、用tio开发udp,有点意思】
2018-06-04 13:53:05,682 INFO  o.t.s.u.s.ShowcaseUdpHandler[29]: 收到来自127.0.0.1:50837的消息:【999963、用tio开发udp,有点意思】
2018-06-04 13:53:05,682 INFO  o.t.s.u.s.ShowcaseUdpHandler[29]: 收到来自127.0.0.1:50837的消息:【999964、用tio开发udp,有点意思】
2018-06-04 13:53:05,682 INFO  o.t.s.u.s.ShowcaseUdpHandler[29]: 收到来自127.0.0.1:50837的消息:【999965、用tio开发udp,有点意思】
2018-06-04 13:53:05,682 INFO  o.t.s.u.s.ShowcaseUdpHandler[29]: 收到来自127.0.0.1:50837的消息:【999966、用tio开发udp,有点意思】
2018-06-04 13:53:05,682 INFO  o.t.s.u.s.ShowcaseUdpHandler[29]: 收到来自127.0.0.1:50837的消息:【999967、用tio开发udp,有点意思】
2018-06-04 13:53:05,682 INFO  o.t.s.u.s.ShowcaseUdpHandler[29]: 收到来自127.0.0.1:50837的消息:【999968、用tio开发udp,有点意思】
2018-06-04 13:53:05,682 INFO  o.t.s.u.s.ShowcaseUdpHandler[29]: 收到来自127.0.0.1:50837的消息:【999969、用tio开发udp,有点意思】
2018-06-04 13:53:05,683 INFO  o.t.s.u.s.ShowcaseUdpHandler[29]: 收到来自127.0.0.1:50837的消息:【999970、用tio开发udp,有点意思】
2018-06-04 13:53:05,683 INFO  o.t.s.u.s.ShowcaseUdpHandler[29]: 收到来自127.0.0.1:50837的消息:【999971、用tio开发udp,有点意思】
2018-06-04 13:53:05,683 INFO  o.t.s.u.s.ShowcaseUdpHandler[29]: 收到来自127.0.0.1:50837的消息:【999972、用tio开发udp,有点意思】
2018-06-04 13:53:05,683 INFO  o.t.s.u.s.ShowcaseUdpHandler[29]: 收到来自127.0.0.1:50837的消息:【999973、用tio开发udp,有点意思】
2018-06-04 13:53:05,683 INFO  o.t.s.u.s.ShowcaseUdpHandler[29]: 收到来自127.0.0.1:50837的消息:【999974、用tio开发udp,有点意思】
2018-06-04 13:53:05,683 INFO  o.t.s.u.s.ShowcaseUdpHandler[29]: 收到来自127.0.0.1:50837的消息:【999975、用tio开发udp,有点意思】
2018-06-04 13:53:05,683 INFO  o.t.s.u.s.ShowcaseUdpHandler[29]: 收到来自127.0.0.1:50837的消息:【999976、用tio开发udp,有点意思】
2018-06-04 13:53:05,683 INFO  o.t.s.u.s.ShowcaseUdpHandler[29]: 收到来自127.0.0.1:50837的消息:【999977、用tio开发udp,有点意思】
2018-06-04 13:53:05,683 INFO  o.t.s.u.s.ShowcaseUdpHandler[29]: 收到来自127.0.0.1:50837的消息:【999978、用tio开发udp,有点意思】
2018-06-04 13:53:05,683 INFO  o.t.s.u.s.ShowcaseUdpHandler[29]: 收到来自127.0.0.1:50837的消息:【999979、用tio开发udp,有点意思】
2018-06-04 13:53:05,683 INFO  o.t.s.u.s.ShowcaseUdpHandler[29]: 收到来自127.0.0.1:50837的消息:【999980、用tio开发udp,有点意思】
2018-06-04 13:53:05,683 INFO  o.t.s.u.s.ShowcaseUdpHandler[29]: 收到来自127.0.0.1:50837的消息:【999981、用tio开发udp,有点意思】
2018-06-04 13:53:05,683 INFO  o.t.s.u.s.ShowcaseUdpHandler[29]: 收到来自127.0.0.1:50837的消息:【999982、用tio开发udp,有点意思】
2018-06-04 13:53:05,683 INFO  o.t.s.u.s.ShowcaseUdpHandler[29]: 收到来自127.0.0.1:50837的消息:【999983、用tio开发udp,有点意思】
2018-06-04 13:53:05,683 INFO  o.t.s.u.s.ShowcaseUdpHandler[29]: 收到来自127.0.0.1:50837的消息:【999984、用tio开发udp,有点意思】
2018-06-04 13:53:05,683 INFO  o.t.s.u.s.ShowcaseUdpHandler[29]: 收到来自127.0.0.1:50837的消息:【999985、用tio开发udp,有点意思】
2018-06-04 13:53:05,684 INFO  o.t.s.u.s.ShowcaseUdpHandler[29]: 收到来自127.0.0.1:50837的消息:【999986、用tio开发udp,有点意思】
2018-06-04 13:53:05,684 INFO  o.t.s.u.s.ShowcaseUdpHandler[29]: 收到来自127.0.0.1:50837的消息:【999987、用tio开发udp,有点意思】
2018-06-04 13:53:05,684 INFO  o.t.s.u.s.ShowcaseUdpHandler[29]: 收到来自127.0.0.1:50837的消息:【999988、用tio开发udp,有点意思】
2018-06-04 13:53:05,684 INFO  o.t.s.u.s.ShowcaseUdpHandler[29]: 收到来自127.0.0.1:50837的消息:【999989、用tio开发udp,有点意思】
2018-06-04 13:53:05,684 INFO  o.t.s.u.s.ShowcaseUdpHandler[29]: 收到来自127.0.0.1:50837的消息:【999990、用tio开发udp,有点意思】
2018-06-04 13:53:05,684 INFO  o.t.s.u.s.ShowcaseUdpHandler[29]: 收到来自127.0.0.1:50837的消息:【999991、用tio开发udp,有点意思】
2018-06-04 13:53:05,684 INFO  o.t.s.u.s.ShowcaseUdpHandler[29]: 收到来自127.0.0.1:50837的消息:【999992、用tio开发udp,有点意思】
2018-06-04 13:53:05,684 INFO  o.t.s.u.s.ShowcaseUdpHandler[29]: 收到来自127.0.0.1:50837的消息:【999993、用tio开发udp,有点意思】
2018-06-04 13:53:05,684 INFO  o.t.s.u.s.ShowcaseUdpHandler[29]: 收到来自127.0.0.1:50837的消息:【999994、用tio开发udp,有点意思】
2018-06-04 13:53:05,684 INFO  o.t.s.u.s.ShowcaseUdpHandler[29]: 收到来自127.0.0.1:50837的消息:【999995、用tio开发udp,有点意思】
2018-06-04 13:53:05,684 INFO  o.t.s.u.s.ShowcaseUdpHandler[29]: 收到来自127.0.0.1:50837的消息:【999996、用tio开发udp,有点意思】
2018-06-04 13:53:05,684 INFO  o.t.s.u.s.ShowcaseUdpHandler[29]: 收到来自127.0.0.1:50837的消息:【999997、用tio开发udp,有点意思】
2018-06-04 13:53:05,684 INFO  o.t.s.u.s.ShowcaseUdpHandler[29]: 收到来自127.0.0.1:50837的消息:【999998、用tio开发udp,有点意思】
2018-06-04 13:53:05,684 INFO  o.t.s.u.s.ShowcaseUdpHandler[29]: 收到来自127.0.0.1:50837的消息:【999999、用tio开发udp,有点意思】

        7、打完收功

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值