Пример #1
0
        private void CloseConnectionCallback(IAsyncResult ar)
        {
            int sent = 0;

            try
            {
                sent = sender.EndSend(ar);
            } catch (Exception e)
            {
                WriteLog(LogStrings.ExceptionWasThrown(e));
                return;
            }

            WriteLog(LogStrings.BytesWereSuccessfulySent(sent));
            WriteLog(LogStrings.CloseSocket());

            try
            {
                sender.Shutdown(SocketShutdown.Both);
                sender.Close();
            } catch (Exception e)
            {
                WriteLog(LogStrings.ExceptionWasThrown(e));
            }

            senderSema.Release();
        }
Пример #2
0
        private void SendCallback(IAsyncResult ar)
        {
            Socket sender    = (Socket)ar.AsyncState;
            int    bytesSent = 0;

            try
            {
                bytesSent = sender.EndSend(ar);
            } catch (Exception e)
            {
                WriteLog(LogStrings.ExceptionWasThrown(e));
                return;
            }

            WriteLog(LogStrings.BytesWereSuccessfulySent(bytesSent));

            StateObject state = new StateObject();

            state.workSocket = sender;

            WriteLog(LogStrings.WaitingToReceiveMessageFromServer());

            sender.BeginReceive(state.buffer, 0, state.buffer.Length, 0, new AsyncCallback(ReceiveCallback), state);
        }