编写代理服务器

时间:2011-04-21 16:11:26

标签: java proxy https

最近,我一直在用Java编写代理服务器。我写的服务器可以处理GET和POST方法。但是,它没有t support HTTPS protocol. Googling didn帮助很多。我刚才知道我也必须实现CONNECT方法(我们必须使用HTTP TUNNELING)。但是,我怎么能把这件事搞定,我没有最模糊的想法。如果你给我一些有用的链接或者帮我解决一个粗略的想法会很有帮助。

我尝试使用以下代码,但一段时间后卡住了:

SSLSocketFactory factory = (SSLSocketFactory) SSLSocketFactory.getDefault();  

Socket tunnel = new Socket ("127.0.0.1",8036);   

OutputStream serverOut = tunnel.getOutputStream();  
String requestSSLServer = "CONNECT " + urlServer + " HTTP/1.0 \n" + secondLine + "\r\n";  
byte b[];   
b= requestSSLServer.getBytes("ASCII7");  
serverOut.write(b);   

传递给Socket对象的IP地址和端口号应该是什么? 接下来我该怎么办? 接下来我该怎么办?

2 个答案:

答案 0 :(得分:2)

您编写的是HTTP代理。电子邮件使用与HTTP无关的协议。了解这些协议(POP,SMTP和IMAP),然后再回到此任务。

答案 1 :(得分:1)

编写邮件中继比http代理更复杂,因为标头不同,您必须动态更改/设置其中的一些。 但是,如果您要提供邮件(发送)中继,则SMTP(发送邮件)的标准端口为25;但是,由于这是纯文本,如果涉及身份验证,您可能必须使用smtps(安全SMTP),即465。 如果你想提供一个imap(读取邮件)代理,那么端口是143或220(对于imap3) - 对于imaps(安全imap)也是993。 最后但并非最不重要的是,如果你想提供POP(读取邮件)代理,那么pop2的端口是109和103用于POP3(现在广泛传播 - 我不知道还有人还在使用POP2)。另外,安全POP3在端口995上。