2011-03-09 70 views
0

所以,我從codeplex(http://mailsystem.codeplex.com/)得到了mailsystem.net,來編寫pop3客戶端。 問題是,我想使用http代理。 發現了一些線索在:.net pop3 over http proxy

How to open socket thru proxy server in .Net C#?

這裏是 我的代碼:

Pop3Client pop = new Pop3Client(); 
Socket sock = new Socket(AddressFamily.InterNetwork, 
          SocketType.Stream, 
          ProtocolType.Tcp); 
sock.Connect("79.172.35.74", 82); // here is proxy 
sock.Send(Encoding.UTF8.GetBytes("CONNECT pop.yandex.ru:110 HTTP/1.1<CR><LF>")); // here pop3 server 
sock.Send(Encoding.UTF8.GetBytes("<CR><LF>")); 
byte[] buffer = new byte[25]; 
sock.Receive(buffer); 
pop.Client = sock; 
pop.Connect(config.pop3.host, config.pop3.username, config.pop3.password); 

所以,它不能在最後一行,帶插座例外。我能做什麼?或者有代理支持的任何免費pop3client庫?從崗位

+0

PS,''在C#表示爲' 「\ r \ n」 個''爲 「\ r」= '和'「\ n「= ' – SSpoke 2015-07-30 07:31:40

回答

1

引用鏈接到:

  1. 連接到代理。
  2. 問題CONNECT Host:Port HTTP/1.1<CR><LF>
  3. 問題<CR><LF>
  4. 等待響應線。如果它包含HTTP/1.X 200,則連接成功。
  5. 閱讀更多的響應行,直到收到空行。
  6. 現在,你通過代理連接到外部世界。做任何你想要的數據交換。

你在哪裏做子彈nr。 5?你在哪裏閱讀所有行,直到你收到一個空行?

除此之外,我不知道問題可能是什麼。您可以選擇使用Starksoft Proxy library來幫助您。

+0

PS,''在C#中表示爲'」\ r \ n「'」「\ r」= '和'「\ n」= ' – SSpoke 2015-07-30 07:31:32