Jetsever开源项目学习(三)Server学习

首先看一下org.menacheri.jetserver.server包

Server.java

package org.menacheri.jetserver.server;

import java.net.InetSocketAddress;

import org.menacheri.jetserver.app.Session;

public interface Server {

    public interface TransmissionProtocol{

    }                                                      //内部接口,只有域没有方法

    public enum TRANSMISSION_PROTOCOL implements TransmissionProtocol {
        TCP,UDP;
    }                                                      //枚举类实现了传输协议的种类

    TransmissionProtocol getTransmissionProtocol();

    void startServer() throws Exception;

    void startServer(int port) throws Exception;

    void startServer(InetSocketAddress socketAddress) throws Exception;

    void stopServer() throws Exception;

    InetSocketAddress getSocketAddress();

    Session getSession();

    void setSession(Session session);
}

ServerManger.java

package org.menacheri.jetserver.server;

/**
 * A generic interface used to manage a server.
 * @author Abraham Menacherry
 *
 */
public interface ServerManager
{
    public void startServers(int tcpPort, int flashPort, int udpPort) throws Exception;

    public void startServers() throws Exception;
    /**
     * Used to stop the server and manage cleanup of resources.
     *
     */
    public void stopServers() throws Exception;
}

首先看一下Server和ServerManager这两个接口:

(1)ServerManager用于管理多个Server,提供对外的访问接口。

(2)Server中的方法是包级保护的,这个包其实只有Server和ServerManger两个类,所以Server中的方法只能被ServerManger访问。

(3)这两个接口提供了服务类通用的方法,如开始服务,结束服务,返回套接字地址,传输协议,Session和设置Session等。



时间: 2024-08-09 10:31:00

Jetsever开源项目学习(三)Server学习的相关文章

开源项目Material Calendar View 学习记录 (一)

开源项目Material Calendar View 学习记录 Github: https://github.com/prolificinteractive/material-calendarview README.md 中文翻译: Material Calendar View将Android CalendarView 的Material Design风格向后移植.其目标是拥有Material的视觉和使用效果,而不是完全依赖于平台的实现. 0.8.0版本的主要变更 此视图现在对布局参数的响应更好

Android开源项目第三篇——优秀项目篇

本文为那些不错的Android开源项目第三篇——优秀项目篇,主要介绍那些还不错的完整Android项目. Android开源项目系列汇总已完成,包括: Android开源项目第一篇——个性化控件(View)篇 Android开源项目第二篇——工具库篇 Android开源项目第三篇——优秀项目篇 Android开源项目第四篇——开发及测试工具篇 Android开源项目第五篇——优秀个人和团体篇 记录的项目主要依据是项目有意思或项目分层规范比较好. Linux 项目地址:https://github

转__Android开源项目(三 完结篇)

http://www.csdn.net/article/2013-05-21/2815370-Android-open-source-projects-finale/1 截至目前,在GitHub“最受欢迎的开源项目”系列文章中我们已介绍了40个Android开源项目,对于如此众多的项目,你是Mark.和码友分享经验还是慨叹“活到老要学到老”?今天我们将继续介绍另外34个Android开源项目. 此前,CSDN移动频道推出的GitHub平台上“最受欢迎的开源项目”系列文章引发了许多读者的热议,在“

GitHub上不错的Android开源项目(三)

收集相关系列资料,自己用作参考,练习和实践.小伙伴们,总有一天,你也能写出 Niubility 的 Android App :-) GitHub上不错的Android开源项目(一):http://www.cnblogs.com/haochuang/p/4676090.html GitHub上不错的Android开源项目(二):http://www.cnblogs.com/haochuang/p/4676092.html GitHub上不错的Android开源项目(三):http://www.cn

直接拿来用!最火的iOS开源项目(三)

41. DCIntrospect Introspect是由来自澳大利亚的Domestic Cat Software工作室在GitHub上发起的一个开源项目.Introspect是一个很小的工具集,主要用于帮助开发者调试使用UIKit框架构建的iOS用户界面,堪称是iOS界面调试神器. Introspect特别适合来做动态创建.运行时可更改.通过查找透明视图调整性能.不必重绘的视图等的UI布局.既可用于iPhone模拟器,也可直接在iOS设备上运行使用. 42. SVWebViewControll

Jetsever开源项目学习(三)Session学习

package org.menacheri.jetserver.app; import java.util.List; import org.menacheri.jetserver.communication.MessageSender; import org.menacheri.jetserver.communication.MessageSender.Fast; import org.menacheri.jetserver.communication.MessageSender.Reliab

Jetsever开源项目学习(二)架构学习—— Jetserver internal details and how it works.

Jet Server - architecture and internal details This section outlines how data flows through jet server, the important classes and interfaces and also which ones need to be extended by users to write their game logic, receive events and so on. If you

Jetsever开源项目学习(五)Concurrent学习

首先梳理一下整体的架构,总的来说就是一个生产—消费者的形式,建立在Executor framework上: 1.每一个Lane包含一个名字string和线程池(ExecutorService),线程池其实就相当于worker集合2.每一个Lane有一个计数器(AtomicInteger),用来记录进入这个Lane的session的数量,session集合其实就相当于相当于任务队列3.每一个GameRoom属于一个Lane(也就是一个Lane中可以有多个GameRoom).每当添加一个新的sess

ios GitHub上比较不错的开源项目,有时间可以学习下

1.ReactiveCocoa:ReactiveCocoa/ReactiveCocoa · GitHub: GitHub自家的函数式响应式编程泛型的Objective-C实现,名字听着很高大上,学习曲线确实也比较陡,但是绝对会改变你对iOS编程的认知,首推之. 2. Mantle:Mantle/Mantle · GitHub: 又是GitHub自家的产物,轻量级建模的首选,也可以很好的配合CoreData工作. 3. AFNetworking:AFNetworking/AFNetworking