Exemplo n.º 1
0
 public WinsockClient(ServerSocket Server, Socket Connection, int BufferSize, IPacketCipher Cipher)
 {
     this.Server     = Server;
     this.Connection = Connection;
     Buffer          = new byte[BufferSize];
     Disposed        = false;
 }
Exemplo n.º 2
0
        /// <summary>
        /// Запуск цикла приема пакетов
        /// </summary>
        /// <param name="client">клиент</param>
        public void Reconnect(Socket client)
        {
            _instance = this;

            //установка переменной содержащую поток клиента
            this.sclient = client;

            //установка массива для приема данных, размер указан в общих настройках сервера
            this.receiveBuffer = new byte[clientOptions.ReceiveBufferSize];
            //установка криптографии для дешифровки входящих данных, указана в общих настройках сервера
            this.inputCipher = (IPacketCipher)clientOptions.inputCipher.Clone();
            //установка криптографии для шифровки исходящих данных, указана в общих настройках сервера
            this.outputCipher = (IPacketCipher)clientOptions.outputCipher.Clone();

            //Bug fix, в системе Windows это значение берется из реестра, мы не сможем принять больше за раз чем прописанно в нем, если данных будет больше, то цикл зависнет
            sclient.ReceiveBufferSize = clientOptions.ReceiveBufferSize;

            //Bug fix, отключение буфферизации пакетов для уменьшения трафика, если не отключить то получим фризы, в случае с игровым соединением эту опцию обычно нужно отключать
            sclient.NoDelay        = true;
            sclient.ReceiveTimeout = -1;
            sclient.SendTimeout    = -1;

            //Начало приема пакетов от клиента
            sclient.BeginReceive(receiveBuffer, offset, lenght, SocketFlags.None, ReceiveHeader, sclient);
            clientOptions.RunClientConnect(this.Network);
        }
Exemplo n.º 3
0
 public WinsockClient(ServerSocket Server, Socket Connection, int BufferSize, IPacketCipher Cipher)
 {
     this.Server = Server;
     this.Connection = Connection;
     Buffer = new byte[BufferSize];
     Disposed = false;
 }