• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

        運用winsock Api完成finger

        運用winsock Api完成finger

        更新時間:2022-05-10 文章作者:未知 信息來源:網絡 閱讀次數:

        在編制Winsocket程序的時候,要有一些必要的步驟:
        1、初始化Winsock動態連接庫;

        2、建立一個Winsock對象。

        3、連接主機。

        4、和主機進行數據交流。

        5、關閉Socket對象

        6、釋放Winsoket動態鏈接庫。

        下面是一個使用winsock Api實現finger實現的源程序:在delphi6中調試通過。

        unit finger;

        interface

        uses
        Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
        Dialogs,winsock, StdCtrls;

        type
        TForm1 = class(TForm)
        Label1: TLabel;
        Label2: TLabel;
        edtHost: TEdit;
        btnFinger: TButton;
        edtUser: TEdit;
        memInfo: TMemo;
        procedure btnFingerClick(Sender: TObject);
        procedure FormCreate(Sender: TObject);
        procedure FormDestroy(Sender: TObject);
        private
        { Private declarations }
        public
        { Public declarations }
        end;

        var
        Form1: TForm1;

        implementation

        {$R *.dfm}

        procedure TForm1.btnFingerClick(Sender: TObject);
        var
        Info:string;//服務器返回的用戶信息
        BufSend,BufRev:pChar;//中間信息
        skt:TSOCKET;//創建Socket對象
        addr:TSockAddr;//地址信息
        Re:Integer;
        begin
        //1、建立Socket
        skt:=socket(AF_INET,SOCK_STREAM,0);
        if(skt=INVALID_SOCKET)Then
        begin
        memInfo.Lines.Add('Error:Create Winsock Failed');
        exit;
        end;
        //2、連接主機
        ZeroMemory(@addr,sizeof(addr));
        Addr.sin_family:=AF_INET;
        Addr.sin_addr.S_addr:=inet_addr(Pchar(edtHost.Text));
        //開放79端口
        addr.sin_port:=htons(79);
        Re:=connect(skt,addr,sizeof(addr));
        if(Re<>0)then
        begin
        memInfo.Lines.Add('Connect to Server Failed!');
        exit;
        end;

        //3、發送信息
        GETMem(BufSend,1024);
        ZeroMemory(BufSend,1024);
        Info:=edtUser.Text+#10;
        StrPCopy(BufSend,info);
        Re:=Send(skt,Bufsend^,Length(BufSend),0);
        if(Re=SOCKET_ERROR)then
        begin
        memInfo.Lines.Add('Send Data Failed!');
        exit;
        end;
        //5、讀取主機返回信息
        GetMem(BufRev,1024);
        Repeat
        ZeroMemory(BufRev,1024);
        re:=recv(skt,BufRev^,1024,0);
        Info:=Strpas(bufRev);
        memInfo.Lines.Add(Info);
        Until re=0;
        memInfo.Lines.Add('FINISH!');
        FreeMem(BufSend);
        FreeMem(BufRev);
        //6、關閉socket連接
        closesocket(skt);
        end;

        procedure TForm1.FormCreate(Sender: TObject);
        var
        WSAData:TWSAData; //是TWSAData類型的變量,系統把加載的版本信息添加到這個結構中
        begin
        //初始化Winsock
        if(WSAStartup(MAKEWORD(2,0),WSAData)<>0)then
        begin
        //初始化失敗
        memInfo.Lines.Add('Winsock Init Failed!');
        exit;
        end
        else
        memInfo.Lines.Add('Winsock Start!');
        end;

        procedure TForm1.FormDestroy(Sender: TObject);
        begin
        WSACleanUP();
        end;

        end.
        如果有什么問題,請聯系 qiujianben@163.com (杭州電子工業學院)

        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 亚洲精品99久久久久中文字幕| 一区二区三区在线免费观看视频| 67pao强力打造高清免费| 亚洲女初尝黑人巨高清| 久久久久久国产a免费观看不卡| 精品免费国产一区二区| 亚洲国产成人精品无码区花野真一 | 国产精品无码免费专区午夜 | 亚洲AV日韩精品久久久久久| 中文字幕免费在线观看动作大片| 久久精品国产精品亚洲人人| 久久国产乱子伦精品免费午夜| 亚洲国产精品成人精品无码区在线| 免费观看久久精彩视频| 亚洲视频一区在线观看| 久草视频免费在线| 亚洲AV综合色区无码一二三区 | 亚洲bt加勒比一区二区| 久久国产色AV免费看| 久久精品国产亚洲AV蜜臀色欲| 毛片免费全部播放一级| 看免费毛片天天看| 久久91亚洲人成电影网站| 精品无码无人网站免费视频| 久久国产亚洲精品| 免费人成网站7777视频| 成人黄网站片免费视频| 激情亚洲一区国产精品| 免费观看国产小粉嫩喷水| 在线观看人成视频免费无遮挡| 水蜜桃亚洲一二三四在线| 欧美a级成人网站免费| 成人国产网站v片免费观看| 亚洲视频免费在线观看| 女人18毛片水真多免费播放| jizz日本免费| 亚洲冬月枫中文字幕在线看| 亚洲国产精品无码久久青草| 18女人腿打开无遮掩免费| 国产产在线精品亚洲AAVV| 久久精品视频亚洲|