Exemple #1
0
 public void OnDataReceived(IAsyncResult asyn)
 {
     try
     {
         SocketPacket        theSockId = (SocketPacket)asyn.AsyncState;
         int                 iRx       = theSockId.thisSocket.EndReceive(asyn);
         char[]              chars     = new char[iRx + 1];
         System.Text.Decoder d         = System.Text.Encoding.UTF8.GetDecoder();
         int                 charLen   = d.GetChars(theSockId.dataBuffer, 0, iRx, chars, 0);
         System.String       szData    = new System.String(chars);
         //UpdateLogControl(szData);
         if (szData != string.Empty)
         {
             if (szData.Contains("Folder Send"))
             {
                 settings.Filename = szData.Substring(13);
                 UpdateLogControl("The Folder is: " + settings.Filename);
                 folder = true;
                 LaunchReciever();
             }
             if (szData.Contains("Launch"))
             {
                 settings.Filename = szData.Substring(8);
                 UpdateLogControl("The file is: " + settings.Filename);
                 folder = false;
                 LaunchReciever();
             }
             if (szData == "Server Down")
             {
                 UpdateLogControl("Server Down, Disconnecting");
                 CloseSocket();
             }
             else
             {
                 UpdateLogControl(szData);
             }
         }
         WaitForData();
     }
     catch (ObjectDisposedException ex)
     {
         System.Diagnostics.Debugger.Log(0, "OnDataReceived", "Socket closed " + ex.Message);
     }
     catch (SocketException se)
     {
         UpdateLogControl(se.Message);
         CloseSocket();
     }
 }
Exemple #2
0
 public void WaitForData()
 {
     try
     {
         if (m_pfnCallBack == null)
         {
             m_pfnCallBack = new AsyncCallback(OnDataReceived);
         }
         SocketPacket theSocPkt = new SocketPacket();
         theSocPkt.thisSocket = m_clientSocket;
         // Start listening to the data asynchronously
         m_result = m_clientSocket.BeginReceive(theSocPkt.dataBuffer, 0, theSocPkt.dataBuffer.Length, SocketFlags.None, m_pfnCallBack, theSocPkt);
     }
     catch (SocketException se)
     {
         UpdateLogControl(se.Message);
         CloseSocket();
     }
 }