java游戏服务器开发之四--通讯框架netty

前言,

说明

 

引入netty的pom

		
		
		  io.netty
		  netty-all
		  4.1.6.Final
		

然后下面要写四个类,
SocketServer  ---服务器启动类
SocketServerHandler ---服务器消息处理
SocketClientHandlerTest ---测试使用的的客户端消息处理
SocketClientTest ---测试使用的客户端启动类



看这几个类,handle是启动类中的一个小部件,这个是2者的关系,具体代码如下

SocketServer 

/**
 * Copyright (C), 2015-2018
 * FileName: SocketServer
 * Author:   zhao
 * Date:     2018/6/10 21:26
 * Description: netty服务器
 * History:
 *           

SocketServerHandler

/**
 * Copyright (C), 2015-2018
 * FileName: SocketServerHandler
 * Author:   zhao
 * Date:     2018/6/10 21:27
 * Description: SocketServer的消息处理类
 * History:
 *           

SocketClientHandlerTest

/**
 * Copyright (C), 2015-2018
 * FileName: SocketClientHandlerTest
 * Author:   zhao
 * Date:     2018/6/10 21:36
 * Description: SocketClient的测试类
 * History:
 *           

SocketClientTest

/**
 * Copyright (C), 2015-2018
 * FileName: SocketServerTest
 * Author:   zhao
 * Date:     2018/6/10 21:35
 * Description: SocketServer的测试类
 * History:
 *           

测试方法:先启动Main函数中的main或者SocketServer中的main函数,2者一样,然后启动SocketClientTest中的函数,能做到收发就ok了,像这样

服务器
			2018-06-10 21:48:45.763 INFO  com.lizhaoblog.net.SocketServer - Socket服务器已启动完成
			2018-06-10 21:48:51.277 DEBUG io.netty.buffer.AbstractByteBuf - -Dio.netty.buffer.bytebuf.checkAccessible: true
			2018-06-10 21:48:51.281 DEBUG io.netty.util.ResourceLeakDetectorFactory - Loaded default ResourceLeakDetector: io.netty.util.ResourceLeakDetector@4a38e446
			2018-06-10 21:48:51.291 INFO  com.lizhaoblog.net.SocketServer - 建立连接
			2018-06-10 21:48:51.303 DEBUG io.netty.util.Recycler - -Dio.netty.recycler.maxCapacityPerThread: 32768
			2018-06-10 21:48:51.303 DEBUG io.netty.util.Recycler - -Dio.netty.recycler.maxSharedCapacityFactor: 2
			2018-06-10 21:48:51.303 DEBUG io.netty.util.Recycler - -Dio.netty.recycler.linkCapacity: 16
			2018-06-10 21:48:51.303 DEBUG io.netty.util.Recycler - -Dio.netty.recycler.ratio: 8
			2018-06-10 21:48:51.329 INFO  com.lizhaoblog.net.SocketServer - 数据内容:data=小王,我是客户端
		客户端
			2018-06-10 21:48:51.246 INFO  com.lizhaoblog.net.SocketClientTest - 客户端连接建立
			2018-06-10 21:48:51.251 DEBUG io.netty.util.Recycler - -Dio.netty.recycler.maxCapacityPerThread: 32768
			2018-06-10 21:48:51.251 DEBUG io.netty.util.Recycler - -Dio.netty.recycler.maxSharedCapacityFactor: 2
			2018-06-10 21:48:51.251 DEBUG io.netty.util.Recycler - -Dio.netty.recycler.linkCapacity: 16
			2018-06-10 21:48:51.251 DEBUG io.netty.util.Recycler - -Dio.netty.recycler.ratio: 8
			2018-06-10 21:48:51.255 INFO  com.lizhaoblog.net.SocketClientTest - 向Socket服务器发送数据:小王,我是客户端

			2018-06-10 21:48:51.340 INFO  com.lizhaoblog.net.SocketClientTest - 数据内容:data=小李,我是服务器,我收到你的信息了。
			2018-06-10 21:49:02.674 INFO  com.lizhaoblog.net.SocketClientTest - 异常发生


接下来就是改造下简单的实例了,spring框架在java体系中确实是至关重要的一个东西,所以下一篇应该是将netty和spring结合起来。


上面的代码在码云上 https://gitee.com/lizhaoandroid/JgServer
可以加qq群一起探讨Java游戏服务器开发的相关知识 676231564

 

 

 

你可能感兴趣的:(java,java游戏服务器开发,Java游戏服务器开发)