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); }
public void Start() { Console.WriteLine("SOCKS server listening on port {0}", Port); Listener.EnableAccept(Port); }