2011-04-21 115 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),然後再回到這個任務。