Exemple #1
0
		/// <summary>
		/// Send the specified packet. Marks the buffer as used.
		/// </summary>
		
		public void SendTcpPacket (TNBuffer buffer)
		{
			buffer.MarkAsUsed();

			if (mSocket != null && mSocket.Connected)
			{
				buffer.BeginReading();
				
				lock (mOut)
				{
					mOut.Enqueue(buffer);
					
					if (mOut.Count == 1)
					{
						try
						{
							if (onDebug != null)
							{
								onDebug(this.serverName, "SendTcpPacket, size: " + buffer.size);
							}

							// If it's the first packet, let's begin the send process
							lastSendTime = DateTime.Now.Ticks / 10000;
							mSocket.BeginSend(buffer.buffer, buffer.position, buffer.size, SocketFlags.None, OnSend, buffer);
						}
						catch (System.Exception ex)
						{
							Error(ex.Message);
							Close(false);
							Release();
						}
					}
				}
			}
			else buffer.Recycle();
		}