• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

teckV

API networking com Socks

3 mensagens neste tópico

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora