예제 #1
0
 private void HandshakeCallback(IAsyncResult ar)
 {
     try
     {
         int received = LocalSocket.EndReceive(ar);
         if(received == 0)
         {
             Dispose();
             return;
         }
         switch(LocalBuffer[0])
         {
             case 4: // SOCKS 4
                 _socksHandler = new Socks4Handler(LocalSocket, HandshakeEnd);
                 break;
             case 5: // SOCKS 5
                 _socksHandler = new Socks5Handler(LocalSocket, HandshakeEnd, _authCallback);
                 break;
             default:
                 Dispose();
                 return;
         }
         _socksHandler.BeginRequestData();
     }
     catch
     {
         Dispose();
     }
 }