示例#1
0
        public SocksReplyMessage Start(string strRemoteHost, int nRemotePort)
        {
            SocksReplyMessage reply = new SocksReplyMessage();

            reply.AddressType = AddressType.IPV4;

            bool bAccept = Listener.EnableAccept(0);

            if (bAccept == false)
            {
                reply.SOCKSReply = SOCKSReply.GeneralServerFailure;
                return(reply);
            }

            IPEndPoint BoundEp = Listener.ListeningSocket.LocalEndPoint as IPEndPoint;

            bool bConnected = RemoteClient.Connect(strRemoteHost, nRemotePort, false);

            if (bConnected == false)
            {
                reply.SOCKSReply = SOCKSReply.ConnectionRefused;
                Listener.Close();
                Listener = null;
                return(reply);
            }

            reply.SOCKSReply  = SOCKSReply.Succeeded;
            reply.BindAddress = BoundEp.Address;
            reply.BindPort    = (ushort)BoundEp.Port;
            reply.AddressType = AddressType.IPV4;

            return(reply);
        }
示例#2
0
 public void Start()
 {
     Console.WriteLine("SOCKS server listening on port {0}", Port);
     Listener.EnableAccept(Port);
 }