GS与网络打交道

与网络打交道
在GS,GC,Share都与网络打交道,但还是GC最多
GC打交道过程
send_stat BaseChannel::SendCmdTry()
{
    if (!m_queCmd.size())
        return send_stat::send_succeed;

    for(;;)
    {
        if (m_queCmd.empty())
            break;
        DataPkt pkt = m_queCmd.front();

        {
            send_stat hr = m_pDataLayer->SendData(m_nChannelId, pkt.pData, pkt.nSize);//GC与网络打交道倒也没什么
            if(hr != send_stat::send_succeed)
            {
                //放入等待队列,让GS来发送
                m_pShare->PushGcWait(m_nChannelId);
                return hr;
            }
        }

        m_queCmd.pop();

        m_pShare->PushPkt(pkt.pData, pkt.nSize);
    }
    return send_stat::send_succeed;
}
share:
void Share::OnTurnToClient(int nChannelId, void* pData, int nLen)
{
    m_pDataLayer->SendData(nChannelId, pData, nLen);//share这层还不知道什么意思
}
gs:
GS这边与网络打交道其实不多,就是固定的几处
m_spDataLayer->Close(nChannelId);//踢玩家下线
GetBufferNum()//获取缓冲包的数量
时间: 2024-10-06 06:23:29

GS与网络打交道的相关文章

GS与数据库打交道

GS与数据库打交道 link_stat stat = (link_stat)rPkt.size; if (stat == link_stat::link_connected) { GameChannel* pNewGC = new GameChannel(); pNewGC->m_nChannelId = rPkt.channel_id;//客户端唯一标识 pNewGC->m_pDataLayer = m_spDataLayer.get();//GC直接发包到客户端 pNewGC->m_

Android 网络框架Volley

Volley简介 在平时的开发过程中,我们的应用几乎总是在和网络打交道, 在android下的网络编程一般都是基于Http协议的 ,常见的是HttpURLConnection和HttpClient 两个类.因为用的比较多,很容易写一些重复的代码,于是就出现了一些比较好的网络框架,像AsyncHttpClient .Xutils,Universal-Image-Loader(网络图片加载框架)等.   Volley是Google在2013年I/O大会上退出的一款新的网络框架,在数据两不大但通信频繁

iOS项目开发实战——iOS网络编程获取网页Html源代码

如今我们身处互联网的时代,任何一个软件或是App,都会或多或少与网络打交道,并不断发生数据交互.一个没有涉及网络编程的应用会显得比较low,这里我们将会开始使用Swift开发iOS应用,并且主要来实现网络操作方面的功能. 这里的需求是获取某个网页的Html源代码,即从网上获取数据.具体实现如下: (1)创建一个iOS项目,Language选择Swift.然后在ViewController.swift中实现如下代码: override func viewDidLoad() { super.view

网络中路由器相关的名词理解LAN,WAN,WLAN

1. LAN,全称Local Area Network,中文名叫做局域网. LAN是指在某一区域内由多台计算机互联成的计算机组.一般是方圆几千米以内. 局域网可以实现文件管理.应用软件共享.打印机共享.工作组内的日程安排.电子邮件和传真通信服务等功能.局域网是封闭型的,可以由办公室内的两台计算机组成,也可以由一个公司内的上千台计算机组成. 作为LAN,硬件只需要:交换机,且各个PC要在同一网段内. 具体到路由器,我们一般组网,都是组建的LAN网络,用户在局域网里通信.传输文件. 其获取到的是内部

iOS项目开发实战——iOS网络编程获取网页Html源码

现在我们身处互联网的时代.不论什么一个软件或是App,都会或多或少与网络打交道,并不断发生数据交互.一个没有涉及网络编程的应用会显得比較low,这里我们将会開始使用Swift开发iOS应用,而且主要来实现网络操作方面的功能. 这里的需求是获取某个网页的Html源码,即从网上获取数据.详细实现例如以下: (1)创建一个iOS项目,Language选择Swift.然后在ViewController.swift中实现例如以下代码: override func viewDidLoad() { super

浅谈企业网络架构设计

本人工作已有10年有余,工作换了无数,从计算机的售后支持到系统集成项目经理,其间还做过几年网络技术老师.后来厌倦了上课(主要是太理论化了),转投到企业作IDC运维. 不管是在甲方还是在乙方,我们都是和网络打交道.在乙方时,每个项目,几乎都牵涉到网络架构设计.有的比较简单,有的也很复杂.但大多数情况下,都是采用老一套的方法,满足用户基本需求就ok了.很少真正深入用户企业,去探究企业实际需求和现实状况.大多都是按照自己对企业的理解,认为这样比较合理,又是站在甲方的立场,这样可以多赚点钱,或者这个设备

网络虚拟化 SDN

一.Linux Bridge :Linux中的网桥 假设宿主机有 1 块与外网连接的物理网卡 eth0,上面跑了 1 个虚机 VM1,现在有个问题是: 如何让 VM1 能够访问外网? 至少有两种方案 将物理网卡eth0直接分配给VM1,但随之带来的问题很多: 宿主机就没有网卡,无法访问了: 新的虚机,比如 VM2 也没有网卡. 下面看推荐的方案 给 VM1 分配一个虚拟网卡 vnet0,通过 Linux Bridge  br0 将 eth0 和 vnet0 连接起来,如下图所示 Linux Br

Linux相关网络知识梳理

一,前言 一个运维有时也要和网络打交道,所以具备最基本的网络知识,对一个运维人员来说是必要的.但,对于我们的工作来说这些并不是重点,因此,我不可能从最基础的网络知识开始讲起.本节内容更多是从一个梳理和总结的角度进行阐述.如若同学们遇到不懂,或不明白的地方,那么你要留心了,你有很多基础性的网络知识还不具备,我建议从网上有针对性的学习一下. 二,网络基础学习体系 思科课程体系的大致浏览(CCNA),虽然知识不多,培训周期一般在1周左右,但涵盖了大部分的知识内容,对于初步理解网络知识,掌握网络的相关配

java面试题整理(1)

1.Equals与==的区别? ==是判断两个变量或者实例是不是指向同一个内存地址 equals是判断两个变量或者实例所指向的内存地址中的值是不是相同 2.Object有哪些公用方法? 方法equals()测试两个对象是否相等 方法clone()进行对象拷贝 方法getClass()返回和当前对象相关的Class对象 方法notify(),notifyall(),wait()都是用来对给定对象进行线程同步的 3.实际开发中软引用或者弱引用的使用场景: 利用软引用和弱引用解决OOM问题:用一个Ha