コード例 #1
0
ファイル: NetInterface.cs プロジェクト: SleepingCrows/TNL.NET
        public NetInterface(int port)
        {
            Socket = new TNLSocket(port);

            NetClassRep.Initialize();

            LastTimeoutCheckTime = 0;
            AllowConnections     = true;
            RequiresKeyExchange  = false;

            RandomHashData = new byte[12];
            RandomUtil.Read(RandomHashData, 12);

            CurrentTime   = Environment.TickCount;
            PuzzleManager = new ClientPuzzleManager();
        }
コード例 #2
0
        public NetError RecvFrom(TNLSocket incomingSocket, out IPEndPoint recvAddress)
        {
            if (incomingSocket.PacketsToBeHandled.Count == 0)
            {
                recvAddress = null;
                return(NetError.WouldBlock);
            }

            var d = incomingSocket.PacketsToBeHandled.Dequeue();

            var dataSize = d.Item2.Length > TNLSocket.MaxPacketDataSize ? TNLSocket.MaxPacketDataSize : (uint)d.Item2.Length;

            Array.Copy(d.Item2, _buffer, dataSize);

            SetBuffer(_buffer, dataSize);
            SetMaxSizes(dataSize, 0U);
            Reset();

            recvAddress = d.Item1;

            return(NetError.NoError);
        }
コード例 #3
0
 public NetError SendTo(TNLSocket outgoingSocket, IPEndPoint theAddress)
 {
     return(outgoingSocket.Send(theAddress, _buffer, GetBytePosition()));
 }