2011-04-21 84 views
1

最近,我一直在用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); 

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

+0

当你说邮件服务器时,你是在谈论SMTP还是webmail(比如GMail的web界面)? – 2011-04-21 17:33:59

+0

@Robin:我的意思是网络邮件..目前,如果我尝试访问任何邮件界面(如Gmail或yahoomail),页面不会打开。所以,我只是想让它工作。 – letsc 2011-04-22 10:03:21

回答

1

因为标题不同,编写邮件中继比http代理更复杂,您将不得不更改/设置其中的一部分。 但是,如果您希望提供邮件(发送)中继,则SMTP(发送邮件)的标准端口为25;然而,由于这是纯文本,如果涉及认证,您将不得不使用smtps(安全SMTP),即465. 如果您希望提供imap(读取邮件)代理,那么端口是143或220 (对于imap3) - 对于imaps(安全imap)也是993. 最后但并非最不重要的是,如果您想要提供POP(读取邮件)代理,那么pop2的端口为109和103(POP3如今广泛传播 - 我不知道任何人仍在使用POP2)。另外,安全的POP3位于端口995上。

2

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