亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lc_bcb_24.txt

?? c++ builder 的一些txt文檔
?? TXT
字號:

監 視POP3 信 箱 
監 視POP3 信 箱 
西 安 交 通 大 學9649 #(710049)
劉 明 華 
----本 文 將 向 大 家 介 紹 怎 樣 
編 寫 自 己 的 信 箱 監 視 程 序, 程 序 將 直 接 調 用WinSock 函 數 
來 進 行 網 絡 通 信。 除 了 具 備WinSock 編 程 知 識 之 外, 還 必 
須 了 解POP3 協 議。 下 面 是 對POP3 的 一 個 粗 略 的 介 紹, 讀 者 
可 以 參 看RFC 1225 更 為 詳 細 地 了 解 該 協 議。 
一、 關 于POP3 協 議 
----POP3 服 務 器 程 序 通 常 在TCP 端 口110 提 
供 服 務。 當 客 戶 想 要 使 用 服 務 時, 它 便 與 服 務 器 建 立 
一 個TCP 連 接。 一 旦 連 接 建 立,POP3 服 務 器 就 向 客 戶 發 送 
一 條 歡 迎 消 息。 然 后 客 戶 開 始 給 服 務 器 發 送 命 令, 服 
務 器 則 給 出 相 應 的 回 答。POP3 的 命 令 由 一 個 關 鍵 詞 或 者 
關 鍵 詞 加 參 數 組 成。 每 個 命 令 以 回 車 換 行(0xD0xA) 作 為 
結 束 標 志。 對 于 所 有 的 命 令,POP3 服 務 器 都 會 提 供 一 個 
回 答。 服 務 器 的 回 答 由 一 個 狀 態 標 志 加 一 些 附 加 信 息 
組 成。 目 前 使 用 的 兩 個 標 志 是“ +OK” 和“ -ERR”, 分 別 
表 示 客 戶 的 命 令 是 否 合 法。 所 有 的 回 答 也 是 以 回 車 換 
行 結 束。 
----與 本 文 討 論 的 話 題 相 關 的 四 個POP3 
命 令 是USER、PASS、LIST 和QUIT。 
USER 命 令 
格 式USER name 
----其 中name 是 用 戶 在 該POP3 服 務 器 上 
的 用 戶 標 識。 客 戶 應 該 在 接 到 服 務 器 的 歡 迎 消 息 后 或 
者 在 上 一 個 USER 或 者PASS 失 敗 之 后 可 以 發 送 此 命 令。 
PASS 命 令 
格 式PASS string 
----其 中string 為 該 用 戶 的 密 碼。 客 戶 
在 發 送 了USER 命 令 并 且 收 到 了 +OK 的 回 答 之 后 方 可 發 送 
此 命 令。 如 果 用 戶 名 和 密 碼 都 正 確, 服 務 器 回 答 +OK, 
否 則 -ERR。 
LIST 命 令 
格 式LIST 
----如 果 該 用 戶 有 郵 件, 則LIST 命 令 會 
回 答 +OK, 并 列 出 所 有 郵 件 的 標 識 符 和 大 小( 每 個 郵 
件 一 行), 最 后 一 個 僅 包 含 一 個 句 點 的 行(0xD0xA0x2E) 表 
示 整 個 回 答 的 結 束。 如 果 該 用 戶 沒 有 郵 件, 有 些 服 務 
器 會 返 回 -ERR, 有 些 在 可 能 返 回 一 個 +OK 和 一 個 僅 包 
含 一 個 句 點 的 行。 當 然, 客 戶 必 須 在PASS 命 令 通 過 之 后 
客 戶 程 序 才 能 給 服 務 器 發 送LIST 命 令。 
QUIT 命 令 
----從POP3 服 務 器 上 退 出 登 
錄。 
二、 實 現 相 關 函 數 
----接 下 來 我 們 按 照POP3 協 議 所 定 義 的 
通 信 規 則 來 實 現 一 個 名 叫POP3CheckMail 的 函 數, 只 要 調 用 
此 函 數, 我 們 就 可 以 檢 測 信 箱 了。 
----下 面 的 代 碼 是 用 與Delphi 4 兼 容 的Pascal 
語 言 實 現 的, 我 們 必 須 包 含WinSock 單 元, 并 且 在 調 用 下 
列 函 數 之 前 初 始 化 好WinSock 動 態 連 接 庫。 初 始 化WinSock 動 
態 連 接 庫 的 代 碼 如 下: 
----if WSAStartup( $002, wsadata)0 then Halt; 
----POP3CheckMail 的 原 型 如 下: 
----function POP3CheckMail(Email,Password:String;var 
MailList:TStringList;var ErrorMsg:String):Bool; 
----參 數 說 明: 
----Email 和Password 分 別 為 用 戶 的email 信 箱 
名 和 口 令。 
----變 量 參 數MailList 用 于 返 回 郵 件 的 
標 識 和 大 小,MailList.Count 表 示 郵 件 的 封 數。 
----變 量 參 數ErrorMsg 返 回 出 錯 消 息。 
----以 下 是POP3CheckMail 及 其 它 所 用 到 的 
函 數 的 實 現 代 碼。 
Connect_Server 函 數 
----功 能: 與 指 定 的 主 機 建 立 一 個TCP 
連 接, 返 回 一 個Socket 描 述 符。 參 數host 指 定 主 機 的 名 字,Port 
指 定 端 口 號。 
function Connect_Server(host:string;Port:integer):integer;
var i:integer;
    p:^LongInt;
    phe:pHostEnt;
    sin:sockaddr_in;
begin
sin.sin_family:=AF_INET;
sin.sin_port:=htons(Port);
//Get the IP for host, allowing for dotted decimal
phe:=gethostbyname(pchar(host));
if phenil
then begin
     p:=Pointer(phe^.h_addr_list^);
     sin.sin_addr.s_addr:=p^;
     end
else begin
     i:=inet_addr(PChar(Host));
     if i -1 then  sin.sin_addr.S_addr:=i
     end;
//create a socket
Result:=socket(PF_INET,SOCK_STREAM,0);
if (Result=INVALID_SOCKET) then Exit;
//connect to server
if Connect(Result,sin,sizeof(sin))=SOCKET_ERROR
then begin {Error handling} end;
end;
Write_Socket 函 數 
----功 能: 向Socket 寫 入 一 個 字 符 串。 
function Write_Socket(sockfd:Integer; const s:string):Integer;
begin
result:=Winsock.Send(sockfd,pointer(s)^,Length(s),0)
end;
Socket_Readline 函 數 
----功 能: 從Socket 上 讀 取 一 行。 
function Socket_Readline(sockfd:Integer):String;
//Read until #10
var S:String; buf:array[0..1]of Char;
    n:Cardinal;
begin
buf[0]:= #0;buf[1]:= #0; S:=‘';
n:=recv(sockfd,Buf,1,0);
while n>0 do begin
           buf[1]:= #0;
           S:=S +buf;
           if (buf[0]= #10) then Break;
           n:=recv(sockfd, buf, 1, 0);
         end;
Result:=Trim(S);
end;
Pop3Response 函 數 
----功 能: 讀 取POP3 服 務 器 的 一 行 返 回 
信 息, 如 果 是“ +OK” 則 函 數 返 回TURE, 如 果 是“ -ERR” 則 
返 回FALSE。 
function Pop3Response(Sockfd:Integer):Bool;
var  S: string;
begin
  S:=socket_readline(sockfd);
  if copy(s,1,3)=‘ +OK' then Result:=True
  else {if copy(s,1,4)=‘ -ERR' then }Result:=False;
end;
POP3CheckMail 函 數 
----功 能: 檢 測 名 字 為email 的 信 箱, 如 
果 有 新 郵 件, 則 通 過 變 量 參 數MailList 將 每 一 封 郵 件 的 大 
小 返 回。 
function POP3CheckMail
(Email,Password:String;var MailList:
 TStringList;var ErrorMsg:String):Bool;
var sockfd,i:integer;
    S, Host, User:String;
begin
Result:=False; ErrorMsg:=‘';
if MailList=nil then Exit;
S:=Trim(Email);
i:=Pos(‘@',Email);
User:=Trim(Copy(S,1,i -1));
Host:=Trim(Copy(S,i +1,Length(Email) -i));
MailList.Clear;
if (user=‘')or(host=‘') then begin 
ErrorMsg:=‘Invalid email address.';exit; end;
if (Host[1]=‘[')and (Host[Length(host)]=‘]')
then begin Host[1]:=‘ ';Host[Length(host)]:= #0;end;
Host:=Trim(host);
sockfd:=Connect_Server(Host,110);
if not Pop3Response(sockfd)then begin ErrorMsg:=
‘Cannot connect to server';exit; end;
Write_Socket(sockfd,‘USER ' +User + #13 #10);
IF NOT POP3Response(sockfd) then begin ErrorMsg:=
‘USER failed'; Exit;end;
Write_Socket(sockfd,‘PASS ' +Password + #13 #10);
IF NOT POP3Response(sockfd) then begin ErrorMsg:=
‘PASS failed'; Exit;end;
Write_Socket(sockfd,‘LIST' #13 #10);
POP3Response(sockfd);
while true do begin
    s:=Socket_readline(sockfd);
    if s=‘.' then BREAK;
    MailList.Add(S);
end;
Write_Socket(sockfd,‘QUIT' #13 #10);
Closesocket(sockfd);
Result:=True;
end;
三、 郵 件 的 檢 測 
----下 面 我 們 來 看 一 個 使 用POP3CheckMail 函 
數 的 簡 單 示 例。 
var  MailList:TstringList;
     ErrorMsg:String;
...
MailList:=TstringList.Create;
POP3CheckMail(‘simon_liu@263.net', 
‘mypassword', MailList, ErrorMsg);
If MailList.Count>0 then
MessageBox(0, Pchar(‘You have ' +IntToStr
(MailList.Count) + ‘ new messages!'), 
‘New Message!', MB_ICONINFORMATION)
Else if ErrorMsg=‘' then MessageBox
(0, ‘No message!', ‘',0)
Else MessageBox(0, Pchar(ErrorMsg), ‘Error', 0);
MailList.Free;
----如 果 你 仔 細 閱 讀 了POP3CheckMail 函 數 
的 實 現 代 碼, 你 會 發 現 此 函 數 除 了 可 以 獲 取 郵 件 的 封 
數 之 外, 還 可 以 獲 得 每 一 封 郵 件 的 大 小。 你 可 以 通 過POP3CheckMail 
函 數 的 變 量 參 數MailList 的Strings 數 組 來 獲 取 郵 件 的 大 小。 
----實 現 了POP3CheckMail 函 數, 再 在 此 基 
礎 上 編 寫 一 個POP3 信 箱 的 監 視 程 序 就 變 得 很 簡 單 了。 你 
可 以 通 過 一 個 定 時 器 來 定 期 地 調 用POP3CheckMail 函 數, 這 
樣 你 就 可 以 監 視 某 個email 信 箱 了。 假 若 你 想 要 同 時 監 
視 多 個email 信 箱, 只 要 為 每 一 個 信 箱 創 建 一 個 線 程 并 
且 在 線 程 中 定 期 調 用POP3CheckMail 函 數 即 可。 你 的 程 序 中 
如 果 沒 有 使 用Delphi 的 控 件, 那 么 一 個 完 整 的 信 箱 監 視 
程 序 可 能 只 有60K 左 右。  
返回
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

一本久久a久久免费精品不卡| 欧美大片一区二区| 欧美不卡一区二区| 亚洲日本免费电影| 国产在线精品一区二区三区不卡| 色欧美88888久久久久久影院| 精品久久久久久无| 久久福利资源站| 91浏览器入口在线观看| 国产婷婷精品av在线| 久久超碰97中文字幕| 欧美日韩国产一级片| 亚洲女女做受ⅹxx高潮| 成人app在线| 久久久精品国产99久久精品芒果| 蜜桃在线一区二区三区| 欧美系列一区二区| 亚洲综合色噜噜狠狠| 成人一区二区三区视频在线观看| 精品久久久久久久久久久久久久久 | 成人av在线播放网址| 日韩欧美第一区| 久久精品免费观看| 日韩区在线观看| 美女视频黄久久| 精品欧美久久久| 韩国成人精品a∨在线观看| 日韩女同互慰一区二区| 捆绑调教一区二区三区| 在线不卡中文字幕| 日本中文字幕一区二区视频 | 久久免费精品国产久精品久久久久| 日本女人一区二区三区| 欧美猛男男办公室激情| 日韩av电影免费观看高清完整版 | 国产一区二区三区久久悠悠色av| 日韩精品资源二区在线| 美女任你摸久久| 精品国精品自拍自在线| 激情文学综合丁香| 一区二区三区在线看| 色婷婷av一区二区三区gif| 一区二区三区色| 欧美一级片免费看| 国产乱码精品1区2区3区| 欧美激情一区二区三区全黄 | 亚洲卡通动漫在线| 欧美日韩一区在线| 老司机一区二区| 中文字幕成人网| 一本高清dvd不卡在线观看| 亚洲狠狠爱一区二区三区| 7777精品久久久大香线蕉 | 久久久国产一区二区三区四区小说 | 欧美国产欧美综合| 国产精品成人在线观看| 日韩欧美在线一区二区三区| 亚洲综合激情网| 日韩精品一区二区三区swag | 麻豆久久久久久| 国产欧美一区视频| 最新热久久免费视频| 色94色欧美sute亚洲线路一ni| 制服丝袜亚洲精品中文字幕| 精品乱人伦小说| 成人国产在线观看| 亚洲h精品动漫在线观看| 欧美一级高清片在线观看| 国产高清久久久久| 性做久久久久久免费观看| 久久―日本道色综合久久| 色av成人天堂桃色av| 精品综合久久久久久8888| 中文字幕中文字幕在线一区| 欧美精品一二三四| 国产一区二区毛片| 亚洲国产精品尤物yw在线观看| 26uuu色噜噜精品一区| 97精品电影院| 国产一区二区视频在线| 亚洲一卡二卡三卡四卡| 国产欧美日韩精品a在线观看| 在线观看一区二区视频| 国产精品99久久不卡二区| 一区二区免费在线| 欧美成人在线直播| 欧美日韩激情一区| 91视视频在线直接观看在线看网页在线看 | 国产在线一区二区| 亚洲一卡二卡三卡四卡五卡| 国产精品网曝门| 精品国产髙清在线看国产毛片 | 五月婷婷综合网| 日韩理论片一区二区| 久久久久久黄色| 日韩免费电影一区| 3d成人动漫网站| 欧美性xxxxxxxx| 欧美在线三级电影| 色八戒一区二区三区| 91女神在线视频| 99国产精品99久久久久久| 高清在线成人网| 国产大陆a不卡| 国产成人在线视频免费播放| 韩国v欧美v亚洲v日本v| 免费成人美女在线观看.| 香蕉成人伊视频在线观看| 亚洲最色的网站| 亚洲电影第三页| 亚洲大尺度视频在线观看| 亚洲午夜精品一区二区三区他趣| 亚洲视频一区在线| 亚洲日本在线看| 亚洲女与黑人做爰| 日本免费新一区视频| 亚洲一级电影视频| 亚洲成人免费看| 五月天精品一区二区三区| 日日欢夜夜爽一区| 日本免费在线视频不卡一不卡二| 视频一区欧美日韩| 精品一区二区三区香蕉蜜桃| 精品一二三四在线| 成人激情小说乱人伦| av爱爱亚洲一区| 色狠狠色噜噜噜综合网| 欧洲国产伦久久久久久久| 欧美日韩在线免费视频| 欧美一三区三区四区免费在线看| 日韩一区二区三区高清免费看看| 日韩欧美国产三级| 中文字幕第一区第二区| 亚洲男人的天堂av| 日本不卡在线视频| 国产精品一二三在| 日本国产一区二区| 91精品国产91综合久久蜜臀| 日韩精品自拍偷拍| 国产精品热久久久久夜色精品三区 | 91久久精品一区二区三| 欧美日韩一区二区在线观看| 欧美大片在线观看一区| 亚洲国产精品黑人久久久| 亚洲男帅同性gay1069| 日韩精品91亚洲二区在线观看| 国产精品一区二区男女羞羞无遮挡| 99re这里只有精品6| 欧美一区二区三区四区视频| 国产午夜久久久久| 亚洲国产精品久久艾草纯爱| 久久国产精品色婷婷| av在线不卡电影| 日韩一卡二卡三卡四卡| 《视频一区视频二区| 日韩经典一区二区| 99视频热这里只有精品免费| 欧美高清www午色夜在线视频| 亚洲国产岛国毛片在线| 日本中文在线一区| 91美女片黄在线观看91美女| 欧美精品一区二区三区高清aⅴ | 国产精品嫩草99a| 性做久久久久久免费观看欧美| 国产激情一区二区三区| 欧美精选一区二区| 欧美高清在线一区| 精品一区二区久久| 在线成人高清不卡| 亚洲va欧美va人人爽午夜| 大尺度一区二区| 日韩精品专区在线| 亚洲成年人影院| 91美女精品福利| 中文字幕在线播放不卡一区| 国产一区二区三区观看| 欧美日韩国产中文| 亚洲少妇屁股交4| 不卡视频免费播放| 国产午夜精品一区二区三区视频 | 欧美精品一区男女天堂| 亚欧色一区w666天堂| www.欧美精品一二区| 欧美精品一区二区高清在线观看| 亚洲成人av免费| 欧美调教femdomvk| 一区二区三区在线视频观看 | 7777精品伊人久久久大香线蕉完整版 | 视频一区视频二区中文| 在线视频欧美精品| 亚洲一区二区三区视频在线| 色天天综合久久久久综合片| 一区二区中文视频| 色狠狠桃花综合| 亚洲综合成人网| 欧美日韩视频第一区| 亚洲成人av中文| 欧美一卡在线观看| 精品亚洲成av人在线观看| 2022国产精品视频|