Ejemplo n.º 1
0
 public void WaitForData(Socket soc, string clientNumber)
 {
     try
     {
         if (_pfnWorkerCallBack == null)
         {
             _pfnWorkerCallBack = OnDataReceived;
         }
         SocketPacket socketPacket = new SocketPacket(soc, clientNumber);
         soc.BeginReceive(socketPacket.DataBuffer, 0, socketPacket.DataBuffer.Length, SocketFlags.None, _pfnWorkerCallBack, socketPacket);
     }
     catch (SocketException ex)
     {
         Debugger.Log(0, "SocketException", "\n " + ex.Message + "\n");
         _log.Error(String.Format("SocketException - code:{0} msg:{1} - {2}", ex.ErrorCode, ex.Message, ex.SocketErrorCode));
     }
 }
Ejemplo n.º 2
0
        public void OnDataReceived(IAsyncResult asyn)
        {
            SocketPacket socketPacket = (SocketPacket)asyn.AsyncState;

            try
            {
                int    byteCount = socketPacket.CurrentSocket.EndReceive(asyn);
                char[] chars     = new char[byteCount + 1];
                Encoding.UTF8.GetDecoder().GetChars(socketPacket.DataBuffer, 0, byteCount, chars, 0);
                string str = new string(chars);

                UpdateServerLog(socketPacket.ClientNumber + ":" + str);

                byte[] bytes = Encoding.ASCII.GetBytes("Server Reply:" + str.ToUpper());
                socketPacket.CurrentSocket.Send(bytes);
                WaitForData(socketPacket.CurrentSocket, socketPacket.ClientNumber);
            }
            catch (ObjectDisposedException ex)
            {
                Debugger.Log(0, "1", "\nOnDataReceived: Socket has been closed\n");
                _log.Error(String.Format("ObjectDisposedException - name:{0} msg:{1}", ex.ObjectName, ex.Message));
            }
            catch (SocketException ex)
            {
                if (ex.ErrorCode == 10054)
                {
                    UpdateServerLog("Client " + socketPacket.ClientNumber + " Disconnected\n");
                    Socket soc;
                    _workerSocketList.TryRemove(socketPacket.ClientNumber, out soc);
                }
                else
                {
                    Debugger.Log(0, "SocketException", "\n " + ex.Message + "\n");
                    _log.Error(String.Format("SocketException - code:{0} msg:{1} - {2}", ex.ErrorCode, ex.Message, ex.SocketErrorCode));
                }
            }
        }