`

系列三:游戏服务器的邮局服务器

阅读更多

 

QQ: 2#4#2#1#0#6#7#6#4    #表示为空  
Mail: lin_style#foxmail.com    #替换成@ 

行为
难点
邮局服务器流程图
邮局服务器详细图
安全

 

 

行为
邮局服务器控制着两个对象,客户端和bin程序。

接收客户端的协议,根据协议中的信息找到bin,把信息转发向该bin
接收bin的协议,根据协议中的信息找到客户端,把信息转发向该客户端

难点
       首先是连接对应。需要有3方的连接通讯
自己作为服务器(完成端口模型): 接受游戏客户端的连接,接受bin的连接
作为客户端:连接邮局路由,提供信息

那何BIN程序之间的通讯呢?我这里把BIN程序当成一个游戏客户端来通讯。原因有2

  • 虽然BIN和邮局服务器的通讯时双向的,但是邮局服务器是作为一个主要的中转站,有在其处登记过的才算是一个签约客户的关系,这样比较符合逻辑上的理解和功能的归纳
  • 如果将邮局服务器作为客户端进行发起连接,除了BIN服务器外,可能还有其他类型的服务器程序(比如一些全局的服务器),还要额外的对这些套接字和线程进行维护。


       其次是数据的对应。客户端和BIN都需要一个编号标识。需要知道当前客户端在那个BIN程序里。如果是做成实时的表示BIN里用户的集合情况。比如收到一个信息,获取用户名,然后再去查找这个用户在那个BIN里,接着找到BIN的套接字,最后发送。必然会非常的繁琐和复杂,其中还涉及到许多增删的动作。
       最后采取如下:(保留套接字信息)
       在三方(
客户端,邮局,BIN )中,客户端做为独立,不参与信息冗余。邮局对连接至的BIN建立起套接字数组,客户端发送时,带上该数组索引信息,邮局进行查询后直接转发给BIN;在转发中带上客户端套接字的值和ip,port。
BIN发送时,将邮局发送的客户端原样转发,邮局收到后进行验证客户端IP是否变动,如果一致则转发。

Struct
{
    int         nBinIndex;               //发给哪个bin
    unsigned  int        nPlaySocket;  //客户端套接字
    unsigned  int     nPlayIP;         //客户端IP
    int         nPlayPort;             //客户端port;
};

 简单示例图如下:

客户端向邮局服务器发送的

 

 

bin服务器向邮局服务器发送的

 

邮局服务器流程图


邮局服务器详细图


安全

在接受内部的连接时,需要进行IP绑定等“写死”操作
客户端来源防劫持(bin中处理,这里略提):需验证每个协议体中的IP+PORT信息

1
0
分享到:
评论

相关推荐

    IIS技巧:网站服务器的搭建与配置.pdf

    它包含了一系列在互联网上发布信息的服务组件,如Web服务器、FTP服务器和SMTP服务。以下是对IIS安装和配置的详细说明: **1. IIS的安装** IIS通常在安装Windows 2000 Server或更高版本时会自动安装。对于Windows ...

    实验四:虚拟服务器的调查与选择整理.pdf

    【实验四:虚拟服务器的调查与选择】 在信息化时代,为商务网站选择合适的虚拟服务器是至关重要的。这个实验旨在帮助我们了解如何评估和选择虚拟主机服务,以满足不同企业的在线需求。以下是根据实验内容和要求详细...

    常用邮件服务器地址.doc

    - POP3服务器:pop.gmail.com - SMTP服务器:smtp.gmail.com - 在设置GMAIL时,通常需要开启"不太安全的应用"的访问权限,或者使用应用特定密码以增强安全性。 2. **163邮箱设置**: - POP3服务器:pop.163.com...

    WebMail邮件服务器搭建:postfix+dovecot+roundcube (原理加全操作-详细)

    邮件服务器可以分为三个部分:Mail User Agent(MUA)、Mail Transfer Agent(MTA)和Mail Delivery Agent(MDA)。MUA 是用户使用的客户端软件,例如Foxmail、Outlook等;MTA 是邮件服务器,负责将邮件从发送者传递...

    基于Java的邮件服务器源程序

    在IT领域,Java是一种广泛应用的开发语言,尤其在构建服务器端应用程序方面表现出色。本话题聚焦于一个基于Java实现的邮件服务器源程序,这为我们提供了一个深入理解Java在网络通信和邮件处理技术上的应用的机会。 ...

    邮件服务器的工作原理

    邮件服务器的工作原理基于客户端-服务器模型,涉及到多种协议,包括简单邮件传输协议(SMTP)、邮局协议(POP3)以及因特网消息访问协议(IMAP)。以下是关于邮件服务器工作原理的详细说明: 首先,发件人使用用户...

    rhel6下邮件服务器搭建

    对于企业来说,拥有自己的邮件服务器不仅可以降低使用第三方邮件服务的成本,还能提高数据的安全性和可控性。 #### 常用邮件服务器类型 - **基于Postfix/Sendmail的邮件系统**:这类邮件系统广泛应用于企业级应用中...

    Java开源邮件服务器james源码

    2. **POP3/IMAP4服务器**:支持邮局协议第三版(POP3)和互联网消息访问协议第四版(IMAP4)。这些协议允许用户通过客户端程序访问存储在服务器上的邮件。 3. **Mailet框架**:James使用Mailet框架来处理邮件。...

    局域网服务器设置教程

    - 设置SMTP(简单邮件传输协议)和POP3(邮局协议)服务器是实现邮件发送和接收的关键。SMTP用于外发邮件,POP3用于接收邮件。 - 在电子邮件客户端(如Outlook Express)中,需要配置账户设置,输入SMTP和POP3...

    java源码:基于Java的邮件服务器源程序.rar

    它提供了与SMTP(简单邮件传输协议)、POP3(邮局协议)和IMAP(因特网消息访问协议)等邮件服务器交互的接口和类。通过JavaMail API,开发者可以发送、接收和管理邮件。 2. **SMTP服务器实现**: SMTP是互联网上...

    国税之家服务器类电子书锦集

    赢政版主制作的服务器类电子书锦集,内容包括: win2000服务器 win2000架设支持asp的web服务器 win2003下上传不能超过200k的解决办法 ...win2003架设多域名asp网站 关闭和打开服务器的fso功能 ...架设email邮局服务器

    邮件服务器java

    5. **邮件过滤与管理**:服务器可以根据策略对邮件进行过滤,比如垃圾邮件过滤,这通常涉及到正则表达式匹配、关键词查找和第三方库如SpamAssassin的集成。邮件的分类、归档和删除也是邮件服务器的重要功能。 6. **...

    windows Server下架设邮件服务器

    邮件服务器遵循SMTP(简单邮件传输协议)用于发送邮件,POP3(邮局协议)或IMAP(因特网消息访问协议)用于接收邮件。SMTP处理邮件的发送,而POP3或IMAP则负责用户从服务器上下载邮件。 在Windows Server 2003中,...

    服务器基础功能介绍.pdf

    - **按指令集分类**:主要包括复杂指令集CISC(如Intel x86系列和AMD CPU)、精简指令集RISC(常见于高端服务器,如IBM、HP、SUN的小型机)和显示并行指令集EPIC(如Intel的Itanium系列)。 - **按外形分类**:塔式...

    架设exchange邮件服务器

    - DNS服务器:本机或外部DNS服务器 #### 三、步骤详解 ##### 1. 网络配置 - **IP地址设置**:将服务器的IP地址设定为192.168.10.100,并设置DNS为本机IP地址,确保网络通信正常。 - **Active Directory配置**: -...

    简单的SMTP,pop3服务器

    **POP3(邮局协议第3版)** POP3允许用户从邮件服务器下载邮件。它工作在TCP/IP的110号端口,主要目的是让用户在本地设备上离线查看邮件。POP3协议支持下载所有邮件或者只下载新邮件,也支持删除服务器上的邮件(但...

    服务器基本知识.docx

    做一个形象的比喻:服务器就像是邮局的交换机,而微机、笔记本、PDA、手机等固定或移动的网络终端,就如散落在家庭、各种办公场所、公共场所等处的电话机。与外界日常的生活、工作中的电话交流、沟通,必须经过...

    纯java开发邮件服务器(SMTP和POP3协议)

    在这个项目中,我们将主要探讨SMTP(简单邮件传输协议)和POP3(邮局协议第三版)这两种核心协议,以及如何在Java环境中实现它们以支持邮件的发送、接收、群发和转发功能。 SMTP是互联网上用于发送邮件的标准协议。...

Global site tag (gtag.js) - Google Analytics