Jump to content
teckV

API networking com Socks

Recommended Posts

teckV

há uma api GNU para dotNet feita em c# (mas como é obvio podem usar em qualquer linguagem) que ainda não explorei bem mas parece ser muito fixe para criar app´s com recurso a ligações por proxy.. como sabem é preciso adaptar as app´s para tirarem partido da tecno sockets...

criem os vossos programas com funcionalidades de proxy

FTP part of the library uses SocketEx class for the low level network access. This class can be easily configured to access remote host through the intermediate (proxy). Here is a list of the supported proxies: Socks4, Socks4a, Socks5 and Web proxy (HTTP CONNECT method). This class can be found in the BytesRoad.Net.Sockets.dll assembly.

http://www.bytesroad.com/NetSuit/

master of realm - xor/nor but and

Share this post


Link to post
Share on other sites
Bastos

nda q n seja já possivel sem addons, plugins ou 3rd party software... :P

mas podias por um exemplo, pra se verificar as diferenças... assim cada um pode tirar as suas conclusoes... :D

Share this post


Link to post
Share on other sites
teckV

isto refere-se a incluir funcionalidades de proxy em aplicações custom... não sei se tinhas percebido dessa forma... e claro..podes sempre fazer as coisas sem utilizar API que encapsulam as tarefas mais "baixo nivel"

é uma opção... e assim todo o trabalho de "gestão" das questões qie envolvem proxies ficam resolvidas... o que não acontece se não recorreres a estas API´s de "alto nivel"

se fizeres o download e veres os exemplos vais perceber melhor... é que muitas vezes o ppl percepita-se a querer marcar posição e depois...  :bored:

exemplo:

private void btnRequest_Click(object sender, System.EventArgs e)
	{
		SocketEx sock = null;
		try
		{
			Uri reqUri = new Uri(txtURL.Text);

			string host = reqUri.Host;
			int port = reqUri.Port;
			string path = reqUri.PathAndQuery;

			sock = new SocketEx(_proxyType, _proxyServer, _proxyPort, 
				_proxyUser, _proxyPwd);

			//configure preauthenticate
			sock.PreAuthenticate = _preAuthenticate;


			sock.Connect(host, port);
			string cmd = "GET " + path + " HTTP/1.0\r\n" +
						"Host: " + host + "\r\n\r\n";
			sock.Send(_usedEnc.GetBytes(cmd));


			//simple reading loop
			//read while have the data
			try
			{
				byte[] data = new byte[32*1024];
				while(true)
				{
					int dataLen = sock.Receive(data);
					if(0 == dataLen)
						break;
					txtRes.Text += _usedEnc.GetString(data, 0, dataLen);
				}
			}
			catch(Exception ex)
			{
				txtRes.Text += Environment.NewLine + ex.ToString();
			}
		}
		catch(Exception ex)
		{
			MessageBox.Show(ex.Message, "Exception caught!");
		}

		if(null != sock)
			sock.Close();
	}

the end

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.