文档章节

随便聊聊游戏服务器

东方先生
 东方先生
发布于 2017/06/20 09:49
字数 349
阅读 18
收藏 0

    游戏服务器到底是什么?这个问题一直不太好回答。是游戏业务处理?还是游戏的数据分享?还是其他。

    估计每个做过游戏服务器的技术都会有自己的见解。

    今天就一个java新手制作服务器的过程谁便聊聊。为什么使用java?因为我一直用java写服务器啊2333

     既然开始做服务器,那首先就要联网啊。自己写socket,使用框架?我们今天以MINA开始吧。最简单的方式。虽然MINA已经好多年不更新了。

     MINA最新的版本2.0.16

    

import java.io.IOException;
import java.net.InetSocketAddress;

import org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder;
import org.apache.mina.transport.socket.nio.NioSocketAcceptor;

public class Server {
public static void main(String[] args) throws IOException {
	   NioSocketAcceptor acceptor = new NioSocketAcceptor();
       //获得过滤器
	   DefaultIoFilterChainBuilder chain = acceptor.getFilterChain();
       //设置Io处理handler
	   acceptor.setHandler(new IoHandler());
	   //绑定7788端口
	   acceptor.bind(new InetSocketAddress(7788));
}
}

最简版的服务器启动,并未加入编解码器

import org.apache.mina.core.service.IoHandlerAdapter;
import org.apache.mina.core.session.IdleStatus;
import org.apache.mina.core.session.IoSession;

public class IoHandler extends IoHandlerAdapter{
	/**
	 * 收到网络消息
	 */
	@Override
	public void messageReceived(IoSession session, Object message) throws Exception {
		super.messageReceived(session, message);
	}
	/**
	 * 网络关闭
	 */
	@Override
	public void sessionClosed(IoSession session) throws Exception {
		// TODO Auto-generated method stub
		super.sessionClosed(session);
	}
	/**
	 * 网络创建
	 */
	@Override
	public void sessionCreated(IoSession session) throws Exception {
		// TODO Auto-generated method stub
		super.sessionCreated(session);
	}
	/**
	 * 网络闲置
	 */
	@Override
	public void sessionIdle(IoSession session, IdleStatus status) throws Exception {
		// TODO Auto-generated method stub
		super.sessionIdle(session, status);
	}
	/**
	 * 网络开启
	 */
	@Override
	public void sessionOpened(IoSession session) throws Exception {
		// TODO Auto-generated method stub
		super.sessionOpened(session);
	}

	
	
}

最简版的 

© 著作权归作者所有

共有 人打赏支持
东方先生

东方先生

粉丝 0
博文 3
码字总数 904
作品 0
技术主管
怎么看待领导叫你到办公室“随便聊聊”?

切记,在职场就没有“随便聊聊”这回事。 领导闲的没事干,找你聊闲篇,想把自己200多斤的大外甥女介绍给你,可能吗? 他吃饱了啊…… 放心吧,不会的。 不管形式看着多么随意,都一定有目的...

明哥聊求职
06/22
0
0
java系的同学能分享一下你们公司中不错的小工具吗

随便聊聊,你们公司有什么让你眼前一亮的小工具吗,代码量不大但是让你觉得很实用的东西

Vek_lip
01/09
74
0
游戏服务器中的日志处理方式之一

在游戏开发的过程中,我们需要记录一些日志,以便以后了解游戏运行的情况,以及根据日志发现并处理游戏中的突发情况。 一,游戏日志可以分为以下几种: 1)系统日志 2)用户操作日志 3)异常日志...

shezjl
2015/07/05
0
0
网吧是否可以尝试部分电脑不装操作系统

嚼舌头:现在操作系统都可以装在移动硬盘和U盘里了,随便插到哪台机器都可以进入自己的桌面使用。现在的各个大学,中小学的机房还在延续从前的习惯,给每台机器装上系统以及比较常用的软件。...

goofegg
2009/08/05
0
0
棋牌游戏发展那么好,为什么你做不起来?

  同城游和艾瑞联合发布的《地方棋牌游戏行业白皮书》显示:2016年中国地方特色棋牌游戏市场规模总计38.4亿RMB,地方特色棋牌游戏用户规模移动端1.57亿略高于PC端1.55亿。调研显示,2017年棋牌...

H5棋牌游戏开发
2017/12/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

FFmpeg Maintainer赵军:FFmpeg关键组件与硬件加速

大家好!我是赵军,现就职于英特尔的DCG从事基于FFmpeg的硬件优化工作,两年多前加入FFmpeg社区,2018年4月成为FFmpeg的其中的一个FFmpeg Maintainer,主要负责FFmpeg的硬件优化工作。 概览:...

yizhichao
30分钟前
0
0
ehlib 修改 使行号字体颜色 与标题字体颜色 一致

对ehlib 显示效果不够满意,而做的调整 修改这个过程:procedure TCustomDBGridEh.DrawIndicatorCell(ACol, ARow: Longint; AreaCol, AreaRow: Longint; ARect: TRect; AState: TGri......

vga
56分钟前
1
0
Bash重定向详解

Bash重定向详解 Bash的重定向指的是将命令的输入和输出导向不同地方,而不是默认的标准输入、标准输出和标准错误。Bash的重定向实际上是对标准输入、标准输出和标准错误的重置,进而将所需输...

小陶小陶
今天
3
0
EventBus原理深度解析

一、问题描述 在工作中,经常会遇见使用异步的方式来发送事件,或者触发另外一个动作:经常用到的框架是MQ(分布式方式通知)。如果是同一个jvm里面通知的话,就可以使用EventBus。由于Event...

yangjianzhou
今天
34
0
OpenCV图像处理实例:libuv+cvui显示摄像头视频

#include <iostream>#include <opencv2/opencv.hpp>#define CVUI_IMPLEMENTATION#include <cvui.h>extern "C"{#include <uv.h>}using namespace std;#define WINDOW_NAM......

IOTService
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部