示例#1
0
文件: TcpSocket.cs 项目: unkprog/dpas
        /// <summary>
        /// Метод для асинхронной отправки данных сокету
        /// </summary>
        /// <param name="data">Данные</param>
        /// <param name="socketTo">Сокет, которому отправляются данные</param>
        /// <returns>True - в случае успешной отправки</returns>
        protected bool Send(byte[] data, Socket socketTo)
        {
            try
            {
                if (!socketTo.Connected)
                {
                    return(false);
                }
                TcpSocketAsyncEventArgs e = poolEventArgs.Pop();
                e.AcceptSocket = socketTo;
                if (e.Buffer == null)
                {
                    e.SetBuffer(data, 0, data.Length);
                }
#if DEBUG
                if (isLogging)
                {
                    WriteToLog(string.Concat("Sending ", data.Length, " bytes"));
                }
#endif
                if (!e.Socket.SendAsync(e))
                {
                    ProcessSend(e);
                }
            }
            catch (System.Exception ex)
            {
                SetException(ex, "TcpSocket.Send(byte[] data):");
                return(false);
            }
            return(true);
        }