一:確認網路環境3g/wifi
1. 新增原始檔和framework
1.1. 新增原始檔:
在你的程式中使用 reachability 只須將該例程中的 reachability.h 和 reachability.m 拷貝到你的工程中。如下圖:
1.2.新增framework:
將systemconfiguration.framework 新增進工程。如下圖:
2. 網路狀態
reachability.h中定義了三種網路狀態:
typedef enum networkstatus;
因此可以這樣檢查網路狀態:
switch ([r currentreachabilitystatus])
3.檢查當前網路環境
程式啟動時,如果想檢測可用的網路環境,可以像這樣
// 是否wifi
+ (bool) isenablewifi
// 是否3g
+ (bool) isenable3g
例子:if (([reachability reachabilityforinternetconnection].currentreachabilitystatus == notreachable) &&
([reachability reachabilityforlocalwifi].currentreachabilitystatus == notreachable))
}4. 鏈結狀態的實時通知
網路連線狀態的實時檢查,通知在網路應用中也是十分必要的。接續狀態發生變化時,需要及時地通知使用者:
reachability 1.5版本
#import "reachability.h"
networkstatus remotehoststatus;
}@property networkstatus remotehoststatus;
@end
@synthesize remotehoststatus;
// 更新網路狀態
- (void)updatestatus
// 通知網路狀態
- (void)reachabilitychanged:(nsnotification *)note
}// 程式啟動器,啟動網路監視
// 設定網路檢測的站點
[[reachability sharedreachability] setnetworkstatusnotificationsenabled:yes];
// 設定網路狀態變化時的通知函式
[[nsnotificationcenter defaultcenter] addobserver:self selector:@selector(reachabilitychanged:)
name:@"knetworkreachabilitychangednotification" object:nil];
[self updatestatus];
}- (void)dealloc
reachability 2.0版本
@class reachability;
reachability *hostreach;
}@end
- (void)reachabilitychanged:(nsnotification *)note
}// ...
// 監測網路情況
[[nsnotificationcenter defaultcenter] addobserver:self
selector:@selector(reachabilitychanged:)
name: kreachabilitychangednotification
object: nil];
hostreach = [[reachability reachabilitywithhostname:@"www.google.com"] retain];
hostreach startnotifer];
// ...
}
網路程式設計總結
osi分為物理層 資料鏈路層 網路層 傳輸層 會話層 表現層 應用層共七層。1.物理層 通過媒介傳輸位元,確定機械和電氣規範。位元bit 2.資料鏈路層 將位元組裝成幀和點對點的傳遞。幀frame 3.網路層 負責資料報從源到宿的傳遞和網際互聯。包packet 4.傳輸層 提供端對端的可靠的報文傳遞...
網路程式設計總結
serversocket 埠號 例項化需要填寫埠號。public serversocket int port throws ioexceptionsocket ip位址,埠號 需要填寫訪問的ip位址和埠號。socket.getoutputstream 返回socket的輸出流。socket.geti...
linux 網路程式設計總結 之網路程式設計函式總結
這周學習了linux網路程式設計相關的知識,現在將其總結如下 在linux系統中已經將tcp ip協議相關的東西都封裝好了,所以在入門學習網路程式設計的時候並沒有學習研究太多tcp ip協議的東西,而是學習那些已經將協議封裝好的函式和api。在linux網路程式設計中基本幾個函式如下 第乙個函式 套...