全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1459
推到 Plurk!
推到 Facebook!

Win95 網路斷線偵測

尚未結案
LEO_HSU
一般會員


發表:2
回覆:5
積分:1
註冊:2005-05-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-26 17:31:26 IP:61.218.xxx.xxx 未訂閱
Dear 各位大大:      小弟想請教在Win API中是否有可偵測網路是否斷線的Function呢? (如WinXP & Win2000中,網路線拔掉後網路的Icon會變成斷線Icon) 小弟曾爬文發現有前輩介紹使用Wininet.dll的方法,經實測在Win95中無法使用(Win2000 & WinXP 沒有問題) 所以想請教各位大大介紹是否有其他方法(不用ClientSocket or ServerSocket元件下)
pceyes
尊榮會員


發表:70
回覆:657
積分:1140
註冊:2003-03-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-26 19:18:39 IP:220.132.xxx.xxx 未訂閱
try try see 
     function IsIPPresent: Boolean;
  type
    TaPInAddr = Array[0..10] of PInAddr;
    PaPInAddr = ^TaPInAddr;
  var
    phe: PHostEnt;
    pptr: PaPInAddr;
    Buffer: Array[0..63] of Char;
    I: Integer;
    GInitData: TWSAData;
    IP: String;
  begin
    WSAStartup($101, GInitData);
    Result := False;
    GetHostName(Buffer, SizeOf(Buffer));
    phe := GetHostByName(buffer);
    FpCurrHostEnt := phe;
    if phe = nil then Exit;
    pPtr := PaPInAddr(phe^.h_addr_list);
    I := 0;
    while pPtr^[I] <> nil do
     begin
      IP := inet_ntoa(pptr^[I]^);
      Inc(I);
     end;
    FCurrentIP := IP;
    WSACleanup;
    Result := (IP <> '') and (IP <> '127.0.0.1');
  end;
努力會更接近成功
------
努力會更接近成功
LEO_HSU
一般會員


發表:2
回覆:5
積分:1
註冊:2005-05-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-27 09:56:23 IP:61.218.xxx.xxx 未訂閱
Dear pceyes:    小弟已測試過此方法,在Code中的FpCurrHostEnt與FCurrentIP我在Delphi中無法找到定義,將此兩行Mask後即可Complier但執行後會出現EAccessViolation的例外處理,請pceyes參考    另外想請教pceyes若Host斷線後是否IP String會變為''(空字串呢?) 是否有使用API Function可直接得知Server端已斷線呢?    Anyway 還是謝謝pceyes大大的回覆
LEO_HSU
一般會員


發表:2
回覆:5
積分:1
註冊:2005-05-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-07-27 11:21:48 IP:61.218.xxx.xxx 未訂閱
Dear pceyes: 小弟已完成測試了,將測試心得跟大家分享,在這次我們使用Winsock API函式下在Win2000 & WinXP 與 Win95 所得的WinSock結構結果是不同的,在WinXP 與Win2000下當硬體斷線後WinSock的Address List會將本機Address更改為127.0.0.1 而在Win95則否,所以使用WSAStartup 在Win95中偵測硬體斷線是無法得知網路線已被拔除,但在WinXP & Win2000則可 以上跟大家分享 Thanks ! 感謝pceyes大大你提供的測試Code ^^
系統時間:2024-05-03 1:51:33
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!