⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bcjq019.txt

📁 c++ builder 的一些txt文档
💻 TXT
📖 第 1 页 / 共 2 页
字号:
    
            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     
            左 右。   
                           
                         
                             
                     
                           
                             
                           
                  if (ad==1) {document.write(''+'');}           
                  if (ad==2) {document.write(''+'');}           
                  if (ad==3) {document.write(''+'');}           
                                             
                           
                         
                       
                     
                
                 
                   
                     
                   
                   
                       
                   
                 
                    
                  
                
              
            
            
              
                
                  
                    
            C++ Builder开发者®         
              2000年06月01日 站长:唐朝         
                   
                 
               
             
             
               
             
           
           
         
         
         
         

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -