Beispiel #1
0
 private void receiveDescriptor()
 {
     rcvdMode = receivingMode.receivingDescriptor;
     receivingOrder++;
     AsyncState asyncState = new AsyncState(receivingOrder, MESSAGE_DESCRIPTOR_LENGTH);
     try
     {
         clientSocket.BeginReceive(rcvdByteBuffer, 0, MESSAGE_DESCRIPTOR_LENGTH, 0,
             new AsyncCallback(ReadCallback), asyncState);
     }
     catch (SocketException e)
     {
         DebuggerIX.WriteLine(DebuggerTag.Net, role, "SocketException: " + e.Message);
         throw;
     }
 }
Beispiel #2
0
        private void receiveMessage(int length)
        {
            rcvdMode = receivingMode.receivingMessage;
            receivingOrder++;

            // Reallocating if needed

            if (length < 1000000)
            {

                if (length > rcvdByteBuffer.Length) rcvdByteBuffer = new byte[length];

                AsyncState asyncState = new AsyncState(receivingOrder, length);
                try
                {
                    clientSocket.BeginReceive(rcvdByteBuffer, 0, length, 0, new AsyncCallback(ReadCallback), asyncState);
                }
                catch (SocketException se)
                {
                    DebuggerIX.WriteLine(DebuggerTag.Net, role, "SocketException: " + se.Message);
                    throw;
                }
            }
            else
            {
                throw new SocketException();
            }
        }
Beispiel #3
0
        /// <summary>
        /// called in locked area: sendAsyncCallbackLock
        /// </summary>
        private void ProcessSendingQueue()
        {
            Triple<int, int, byte[]> t = null;

            if (sendBuffer.Count > 0)
            {
                t = sendBuffer.Dequeue();
            }

            if (t != null)
            {
                isSending = true;
                AsyncState asyncState = new AsyncState(t.First, t.Second);
                try
                {
                    clientSocket.BeginSend(t.Third, 0, t.Second, SocketFlags.None, new AsyncCallback(SendAsyncCallback), asyncState);
                }
                catch (SocketException e)
                {
                    DebuggerIX.WriteLine(DebuggerTag.Net, role, "ProcessSendingQueue, SocketException: " + e.Message);
                    throw;
                }
            }
            else
            {
                isSending = false;
                allSentHandle.Set();
            }
        }