Esempio n. 1
0
 public CommServer()
 {
     server           = new TcpPackServer();
     queue            = new BlockingCollection <IMsg>();
     server.OnAccept += delegate(IServer sender, IntPtr connId, IntPtr client)
     {
         OnConnect?.Invoke();
         return(HandleResult.Ok);
     };
     server.OnReceive += delegate(IServer sender, IntPtr connId, byte[] bytes)
     {
         Message message = new Message();
         message.MergeFrom(bytes);
         try
         {
             queue.Add(message);//理论上这里可能抛出异常ObjectDisposedException或InvalidOperationException
         }
         catch (Exception e)
         {
             Console.WriteLine("Exception occured when adding an item to the queue:" + e.Message);
         }
         OnReceive?.Invoke();
         return(HandleResult.Ok);
     };
 }
Esempio n. 2
0
 /// <summary>
 /// 设置基本配置
 /// </summary>
 /// <param name="numConnections">同时处理的最大连接数</param>
 /// <param name="receiveBufferSize">用于每个套接字I/O操作的缓冲区大小(接收端)</param>
 /// <param name="overtime">超时时长,单位秒.(每10秒检查一次),当值为0时,不设置超时</param>
 /// <param name="port">端口</param>
 /// <param name="headerFlag">包头</param>
 public Pack(int numConnections, int receiveBufferSize, int overtime, int port, uint headerFlag)
 {
     server            = new TcpPackServer(numConnections, receiveBufferSize, overtime, headerFlag);
     server.OnAccept  += Server_OnAccept;
     server.OnReceive += Server_OnReceive;
     server.OnSend    += Server_OnSend;
     server.OnClose   += Server_OnClose;
     server.Start(port);
 }
Esempio n. 3
0
        public NetServer(MsgServer msgserver, ActionBlock <byte[]> actionBlock)
        {
            _tcppackserver = new TcpPackServer();

            _msgserver   = msgserver;
            _actionBlock = actionBlock;

            _tcppackserver.OnPrepareListen += _tcppackserver_OnPrepareListen;
            _tcppackserver.OnAccept        += _tcppackserver_OnAccept;
            _tcppackserver.OnSend          += _tcppackserver_OnSend;
            _tcppackserver.OnReceive       += _tcppackserver_OnReceive;
            _tcppackserver.OnClose         += _tcppackserver_OnClose;
            _tcppackserver.OnShutdown      += _tcppackserver_OnShutdown;
        }
        public TcpServerSocket()
        {
            server = new TcpPackServer();
            server.SocketBufferSize  = 1024 * 1;
            server.KeepAliveTime     = 20000;
            server.KeepAliveInterval = 2000;
            Timer disconnectLilenceConnections = new Timer(new TimerCallback((obj) =>
            {
                server.DisconnectSilenceConnections(30000);
            }), null, 30000, 1000);

            //ThreadPool.SetMinThreads(100,100);
            //ThreadPool.SetMaxThreads(655350,655350);
            server.OnReceive += Server_OnReceive;
            server.OnAccept  += Server_OnAccept;
            server.OnClose   += Server_OnClose;
        }