2010-08-17 23 views
0

écrit en JavaTunneling par HTTP

Im la création d'un programme qui se connecte à un proxy, puis tunnel vers un autre serveur pour envoyer des paquets TCP, ceci est mon code:

{ 
Socket skt = new Socket(proxy_address, proxy_port); 
PrintStream myOutput = new PrintStream(skt.getOutputStream()); 

String Request = "CONNECT " + host + ":" + 443 + " HTTP/1.0"; 
String host3 = "Host: " + host + ":" + 443; 
myOutput.println(Request + "\r\n" + host3); 
} 

Essayer de trouver pourquoi je ne reçois pas de réponse du serveur proxy.

+2

Quelle langue est votre code. Il ressemble à Java, mais pour être sûr que vous devriez étiqueter votre question avec la langue utilisée. – jigfox

Répondre

0

Vous avez besoin de deux terminaisons de ligne supplémentaires - l'une pour indiquer la fin de l'en-tête Host: et l'autre pour une ligne vide indiquant la fin de la demande de connexion. Essayez:

myOutput.println(Request + "\r\n" + host3 + "\r\n\r\n"); 
+0

merci, fonctionne comme un charme – Masterban

+0

J'ai en fait une autre question, quand je commence à envoyer les paquets que je veux au serveur Ai-je besoin de faire quelque chose de spécial? comme ajouter la ligne vide à la fin? – Masterban

+0

@Masterban: Non, après avoir lu les en-têtes de réponse du serveur (qui se terminent par une ligne vide), si le code de réponse était 200 alors vous aurez une connexion brute avec l'autre côté. – caf

0

Vous pouvez également essayer de regarder soit corkscrew soit Proxytunnel, bien qu'il s'agisse essentiellement de proxies SSH sur HTTP (S).

+0

programme est en java lol – Masterban

+0

Vous pouvez toujours utiliser ces programmes pour vérifier comment fonctionne le transfert de paquets via HTTP ... – plaes