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(); }
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); }
public NetError SendTo(TNLSocket outgoingSocket, IPEndPoint theAddress) { return(outgoingSocket.Send(theAddress, _buffer, GetBytePosition())); }