游戏蛮牛学习群(纯技术交流,不闲聊):539178957
新宝娱乐城博彩打不开 手机端
开发者专栏

关注:2261

当前位置:新宝娱乐城博彩打不开 技术专区 开发者专栏

__________________________________________________________________________________
开发者干货区版块规则:

  1、文章必须是图文形式。(至少2幅图)
      2、文章字数必须保持在1500字节以上。(编辑器右下角有字数检查)
      3、本版块只支持在游戏蛮牛原创首发,不支持转载。
      4、本版块回复不得无意义,如:顶、呵呵、不错......【真的会扣分的哦】
      5、......
__________________________________________________________________________________
查看: 2692|回复: 27
发新帖

新宝娱乐城反水多少: [薛飞] Unity极简网络游戏之服务端SuperSocket

[复制链接]  [移动端链接]
排名
681
昨日变化
2

新宝娱乐城博彩打不开 www.sl6cl.com.cn 17

主题

178

帖子

2946

积分

Rank: 9Rank: 9Rank: 9

UID
686
好友
12
蛮牛币
3843
威望
0
注册时间
2013-7-4
在线时间
1153 小时
最后登录
2018-7-22

专栏作家社区QQ达人

QQ
跳转到指定楼层
楼主
发表于 2018-6-2 15:47:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
本帖最后由 AWNUXCVBN 于 2018-6-4 11:03 编辑

SuperSocket官网//www.supersocket.net/
SuperSocket 是一个轻量级, 跨平台而且可扩展的 .Net/Mono Socket 服务器程序框架。
一切从简,服务端使用SuperSocket,创建简单的服务器。
主要看代码吧,项目托管在码云上https://gitee.com/awnuxcvbn/Ganghood

[C#] 纯文本查看 复制代码
using LoginServer.Net;
using System; 

namespace LoginServer
{
    class Program
    {
        static void Main(string[] args)
        {
            DataMgr dataMgr = new DataMgr();
            ServNet servNet = new ServNet();
            servNet.Start(6650);
            string str = Console.ReadLine();
            //while (true)
            //{
            //    string str = Console.ReadLine();
                 
            //}
        }
    }
}



[C#] 纯文本查看 复制代码
using SuperSocket.SocketBase;
using SuperSocket.SocketBase.Config;
using SuperSocket.SocketBase.Protocol;
using System;
using System.Collections.Generic;
using System.Timers;
using Message;
using System.Threading;

namespace LoginServer.Net
{
    public class ServNet
    {
        /// <summary>
        /// 实例
        /// </summary>
        public static ServNet instance;
        /// <summary>
        /// 心跳定时器
        /// </summary>
        System.Timers.Timer hbTimer = new System.Timers.Timer(1000);
        /// <summary>
        /// 心跳时间
        /// </summary>
        public long heartBeatTime = 8;
        /// <summary>
        /// 位置分发定时器
        /// </summary>
        System.Timers.Timer moveTimer = new System.Timers.Timer(200);

        /// <summary>
        /// 消息分发
        /// </summary>
        public MsgDisPatcher msgDist;
        /// <summary>
        /// 所有在线用户
        /// </summary>
        public Dictionary<int, PlayerSession> Users = new Dictionary<int, PlayerSession>();

        public ServNet()
        {
            instance = this;
            msgDist = new MsgDisPatcher();
        }

        public GameServer gameServer;

        public void Start(int port)
        {
            hbTimer.Elapsed += new ElapsedEventHandler(HandleHBTimer);
            hbTimer.AutoReset = false;
            hbTimer.Enabled = true;

            moveTimer.Elapsed += new ElapsedEventHandler(HandleMoveTimer);
            moveTimer.AutoReset = false;
            moveTimer.Enabled = true;

            gameServer = new GameServer();
            var serverConfig = new ServerConfig
            {
                Port = 6650, //set the listening port
                Ip = "Any",
                Name = "GameServer",
                //Other configuration options
                Mode = SocketMode.Tcp,
                MaxConnectionNumber = 2000,
                IdleSessionTimeOut = 600,
                TextEncoding = "UTF-8",
                SyncSend = true,
                SendBufferSize = 1024,
                ReceiveBufferSize = 1024,
                LogBasicSessionActivity = true,
                LogAllSocketException = true,
                KeepAliveTime = 300,
            };

            if (gameServer.Setup(serverConfig) == false)
            {
                Console.WriteLine("IpAndEnpoint Set Failed");
                return;
            }
            gameServer.NewSessionConnected += NewSessionConnected;
            gameServer.NewRequestReceived += NewRequestReceived;
            gameServer.SessionClosed += SessionClosed;

            if (gameServer.Start() == false)
            {
                Console.WriteLine("[服务器]启动失败");
                return;
            }

            //Thread t = new Thread(new ThreadStart(Update));
            //t.IsBackground = true;
            //t.Start();

            Console.WriteLine("[服务器]启动成功");
        }

        //public void Update()
        //{ //消息
        //    while (true)
        //    {
        //        msgDist.Update();
        //    }
        //}

        /// <summary>
        /// 新的玩家连接
        /// </summary>
        /// <param name="session"></param>
        private void NewSessionConnected(PlayerSession session)
        {
            Console.WriteLine("连接:" + session.RemoteEndPoint.ToString());
            session.isUse = true;
            msgDist.Update();
        }

        /// <summary>
        /// 收到玩家发送消息
        /// </summary>
        /// <param name="session"></param>
        /// <param name="requestInfo"></param>
        private void NewRequestReceived(PlayerSession session, BinaryRequestInfo requestInfo)
        {
            session.Receive(requestInfo.Key, requestInfo.Body);
            msgDist.Update();
        }
        /// <summary>
        /// 关闭时
        /// </summary>
        /// <param name="session"></param>
        /// <param name="value"></param>
        private void SessionClosed(PlayerSession session, CloseReason value)
        {
            Console.WriteLine("断开:" + session.RemoteEndPoint.ToString());
            session.Close();
            msgDist.Update();
        }

        /// <summary>
        /// 心跳
        /// </summary>
        public void HeartBeat()
        {
            long timeNow = Sys.GetTimeStamp();
            if (Users.Count > 0)
            {
                foreach (PlayerSession session in Users.Values)
                {
                    if (session != null && session.isUse && session.SocketSession.Client != null)
                    {
                        if (session.lastTickTime < timeNow - heartBeatTime)
                        {
                            Console.WriteLine("[心跳引起断开连接]:" + session.LocalEndPoint.ToString());
                            session.Close();
                        }
                    }
                }
            }
        }

        public void HandleHBTimer(object sender, ElapsedEventArgs e)
        {
            HeartBeat();
            hbTimer.Start();
        }

        public void HandleMoveTimer(object sender, ElapsedEventArgs e)
        {
            BroadCastMove();
            moveTimer.Start();
        }

        void BroadCastMove()
        {
            if (Users.Count > 0)
            {
                SToCMoves stcms = new SToCMoves();
                //Console.WriteLine(Users.Values.Count);
                foreach (PlayerSession session in Users.Values)
                {
                    if (session != null && session.isUse && session.SocketSession.Client != null)
                    {
                        CToSMove ctsmm = new CToSMove();
                        ctsmm.uid = session.uid;
                        ctsmm.uname = session.uname;
                        ctsmm.x = session.x;
                        ctsmm.y = session.y;
                        ctsmm.z = session.z;
                        ctsmm.angle = session.angle;
                        stcms.moves.Add(ctsmm);
                    }
                }
                foreach (PlayerSession session in Users.Values)
                {
                    if (session != null && session.isUse && session.SocketSession.Client != null)
                    {
                        session.SendObj(stcms);
                    }
                }
            }
        }
    }
}


评分

参与人数 1鲜花 +5 收起 理由
研究者 + 5 很给力!

查看全部评分


排名
5352
昨日变化

4

主题

77

帖子

450

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
1997
好友
2
蛮牛币
1443
威望
0
注册时间
2013-8-14
在线时间
65 小时
最后登录
2018-6-4

社区QQ达人

QQ
沙发
发表于 2018-6-2 16:31:25 | 只看该作者
写得不够仔细

排名
681
昨日变化
2

17

主题

178

帖子

2946

积分

Rank: 9Rank: 9Rank: 9

UID
686
好友
12
蛮牛币
3843
威望
0
注册时间
2013-7-4
在线时间
1153 小时
最后登录
2018-7-22

专栏作家社区QQ达人

QQ
板凳
 楼主| 发表于 2018-6-2 16:48:26 | 只看该作者

嗯,慢慢整理中,详细写出来……很麻烦

6蛮牛粉丝
1457/1500
排名
26906
昨日变化
6

3

主题

735

帖子

1457

积分

Rank: 6Rank: 6Rank: 6

UID
63377
好友
0
蛮牛币
17
威望
0
注册时间
2014-12-24
在线时间
707 小时
最后登录
2018-7-23
地板
发表于 2018-6-3 16:18:40 | 只看该作者
很不错了好仨here
[发帖际遇]: 商城新_e88uA 乐于助人,奖励 3 蛮牛币. 幸运榜 / 衰神榜

5熟悉之中
636/1000
排名
6415
昨日变化
4

0

主题

268

帖子

636

积分

Rank: 5Rank: 5

UID
180321
好友
4
蛮牛币
451
威望
0
注册时间
2016-11-21
在线时间
180 小时
最后登录
2018-7-23
5#
发表于 2018-6-4 12:23:16 | 只看该作者
这个挺好的

2初来乍到
103/150
排名
22462
昨日变化
1

0

主题

45

帖子

103

积分

Rank: 2Rank: 2

UID
80452
好友
0
蛮牛币
83
威望
0
注册时间
2015-3-16
在线时间
40 小时
最后登录
2018-7-9
6#
发表于 2018-6-4 17:50:02 | 只看该作者
mark123456789

排名
621
昨日变化
2

229

主题

1万

帖子

1万

积分

Rank: 12Rank: 12Rank: 12

UID
78862
好友
12
蛮牛币
13200
威望
0
注册时间
2015-3-11
在线时间
2784 小时
最后登录
2018-7-23
QQ
7#
发表于 2018-6-5 09:11:21 | 只看该作者
可以啊,先标记一下,看看详细功能。
[发帖际遇]: lilexy 在论坛发帖时没有注意,被小偷偷去了 2 蛮牛币. 幸运榜 / 衰神榜

3偶尔光临
230/300
排名
8629
昨日变化
1

0

主题

28

帖子

230

积分

Rank: 3Rank: 3Rank: 3

UID
175798
好友
0
蛮牛币
238
威望
0
注册时间
2016-10-15
在线时间
78 小时
最后登录
2018-7-23
8#
发表于 2018-6-7 09:17:29 | 只看该作者
SuperSocket我用过啊,他那个Server和Client的协议并不是完全一样的,有的要自己适配..有点坑啊

排名
681
昨日变化
2

17

主题

178

帖子

2946

积分

Rank: 9Rank: 9Rank: 9

UID
686
好友
12
蛮牛币
3843
威望
0
注册时间
2013-7-4
在线时间
1153 小时
最后登录
2018-7-22

专栏作家社区QQ达人

QQ
9#
 楼主| 发表于 2018-6-7 12:25:45 | 只看该作者
sysoutyop 发表于 2018-6-7 09:17
SuperSocket我用过啊,他那个Server和Client的协议并不是完全一样的,有的要自己适配..有点坑啊 ...

嗯,就是得自己写协议适配

7日久生情
2401/5000
排名
773
昨日变化
1

30

主题

502

帖子

2401

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
124569
好友
25
蛮牛币
5487
威望
0
注册时间
2015-10-4
在线时间
733 小时
最后登录
2018-7-23
10#
发表于 2018-6-8 07:50:23 | 只看该作者
可以啊,先标记一下,看看详细功能。

7日久生情
2053/5000
排名
1024
昨日变化

0

主题

212

帖子

2053

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
147766
好友
0
蛮牛币
499
威望
0
注册时间
2016-5-6
在线时间
857 小时
最后登录
2018-7-23
QQ
11#
发表于 2018-6-10 19:17:58 | 只看该作者
这个挺好的

5熟悉之中
703/1000
排名
3614
昨日变化
17

1

主题

157

帖子

703

积分

Rank: 5Rank: 5

UID
56245
好友
0
蛮牛币
1748
威望
0
注册时间
2014-11-18
在线时间
175 小时
最后登录
2018-7-22
12#
发表于 2018-6-10 20:00:23 | 只看该作者
认真学习一下~谢谢啦~

5熟悉之中
827/1000
排名
5396
昨日变化
2

0

主题

429

帖子

827

积分

Rank: 5Rank: 5

UID
146677
好友
9
蛮牛币
2698
威望
0
注册时间
2016-4-25
在线时间
162 小时
最后登录
2018-7-23
QQ
13#
发表于 2018-6-12 08:54:11 | 只看该作者
吼吼,好棒,支持一下

4四处流浪
370/500
排名
7146
昨日变化

0

主题

81

帖子

370

积分

Rank: 4

UID
119918
好友
0
蛮牛币
1057
威望
0
注册时间
2015-8-27
在线时间
127 小时
最后登录
2018-7-20
14#
发表于 2018-6-13 16:21:17 | 只看该作者
这个主流吗?

2初来乍到
132/150
排名
10313
昨日变化
143

0

主题

10

帖子

132

积分

Rank: 2Rank: 2

UID
177397
好友
0
蛮牛币
301
威望
0
注册时间
2016-10-22
在线时间
30 小时
最后登录
2018-7-23
15#
发表于 2018-6-14 09:02:14 | 只看该作者
感谢分享!学习学习!

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

快速回复 新宝娱乐城博彩打不开 返回列表
  • 香港田径锦标赛飞人夺冠 2018-12-12
  • 李思思元元月亮姐姐 盘点央视主持人与子女温馨合影 2018-12-11
  • “忻州工匠”“忻州技能标兵”评选活动启动 2018-12-11
  • 包住内力,在不断变化中寻找契机,可出击可借力亦可卸力。 2018-12-10
  • 广州中考首用计算机辅助命题 满满的广州元素 2018-12-09
  • 植树、采茶、挖野菜…… 这才是春天正确的打开方式 2018-12-08
  • 【纯黑】《生化危机7》克里斯DLC不是英雄 2018-12-08
  • 150块地铁灯牌高调“炫父” 温暖南京城 2018-12-07
  • 【光明网专论】鞠立新:习近平新时代中国特色社会主义经济思想的内涵、逻辑和特质 2018-12-06
  • 江西“放管服”改革再出实招 2018-12-05
  • 首列商用磁浮2.0版列车下线 适用中心城市到卫星城间交通--旅游频道 2018-12-05
  • 空警-500改进型新照曝光,监控效率成倍提升 2018-12-04
  • 对美敲诈老手不能软越软越诈你要打就来 2018-12-04
  • 赵旭日:对阵恒大很有缘 比赛要一场一场去踢 2018-12-03
  • 《数码宝贝故事》第三阶段首发初回特典公布--人民网游戏 2018-12-03
  • 475| 871| 527| 1000| 931| 234| 312| 574| 861| 908|