Пример #1
0
        // Handle Receiving Data
        public void socketReceiveHandler(IAsyncResult asyncResult)
        {
            receiveMessage = "";
            try
            {
                bufferHandler socketBuffer = (bufferHandler)asyncResult.AsyncState;
                Socket        handler      = socketBuffer.WorkSocket;
                int           bytesRead    = handler.EndReceive(asyncResult);
                if (bytesRead > 0)
                {
                    socketBuffer.WorkString.Append(Encoding.ASCII.GetString(socketBuffer.WorkBuffer,
                                                                            0, bytesRead));
                    receiveMessage = socketBuffer.WorkString.ToString();
                    if (receiveMessage.Contains("<EOF>"))
                    {
                        // Console.WriteLine($"Client{clientNumber}:> Read {bytesRead} bytes from socket.");
                        Console.WriteLine($"Client{clientNumber}:> Data Read: {receiveMessage}.");

                        receiveDone.Set();
                    }
                    else
                    {
                        handler.BeginReceive(socketBuffer.WorkBuffer, 0, bufferHandler.bufferSize, 0,
                                             new AsyncCallback(socketReceiveHandler), socketBuffer);
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
        }
Пример #2
0
        // Receive Data
        public void socketReceive(Socket handler)
        {
            clientMutex.WaitOne();
            try
            {
                bufferHandler socketBuffer = new bufferHandler();
                socketBuffer.WorkSocket = handler;
                handler.BeginReceive(socketBuffer.WorkBuffer, 0, bufferHandler.bufferSize, 0,
                                     new AsyncCallback(socketReceiveHandler), socketBuffer);

                receiveDone.WaitOne();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            } finally
            {
                clientMutex.ReleaseMutex();
            }
        }