- purge
最近稍微學(xué)習(xí)了一點(diǎn) Objective-C ,做筆記和做編碼練習(xí)都是鞏固學(xué)習(xí)的好方法。整理記錄腦子里的新知識(shí)有助于理清思路,發(fā)現(xiàn)知識(shí)盲點(diǎn)以及錯(cuò)誤的理解。
Objective-C 和 C++ 同樣從兼容 C 語言開始,以給 C 語言增加面向?qū)ο鬄槌踔裕麄兊某霈F(xiàn)的時(shí)間都很類似(1983 年左右)。但面向?qū)ο缶幊痰脑搭^卻不同:C++ 受 Simula 和 Ada 的影響比較多,而 Objective-C 的相關(guān)思想源至 Smalltalk ,最終的結(jié)果是他們?cè)趯?duì)象模型上有不小的差異。
以我這些天粗淺的了解,Objective-C 似乎比 C++ 更強(qiáng)調(diào)類型的動(dòng)態(tài)性,而犧牲了一些執(zhí)行性能。不過這些犧牲,由于模型清晰,可以在今天,由更先進(jìn)的編譯技術(shù)來彌補(bǔ)了。
我對(duì) C++ 的認(rèn)知比 Objective-C 要多的多,所以對(duì) C++ 開發(fā)中會(huì)遇到的問題的了解也多的多。在學(xué)習(xí) Objective-C 的過程中,我發(fā)現(xiàn)很多地方都可以填上曾經(jīng)在 C++ 開發(fā)中遇到的問題。當(dāng)然,Objective-C 一定也有它自己的坑,只是我才剛開始,沒有踩到過罷了。
ObjC 的類方法調(diào)用的形式,更接近于向?qū)ο蟀l(fā)送消息。語法寫作:
[obj message]
如果方法帶有參數(shù),那么就寫作
[obj param:value]
方法和名稱和參數(shù)的名稱是一體的,參數(shù)決定了方法是什么。如果有多個(gè)參數(shù),那么寫作:
[obj param1:value1 param2:value2]
注意,如果一個(gè)類有兩個(gè)方法,一個(gè)有一個(gè)參數(shù),一個(gè)有兩個(gè)參數(shù)。即使兩個(gè)參數(shù)的版本中有一個(gè)參數(shù)名稱和單個(gè)參數(shù)版本的相同,它們也是兩個(gè)不同的方法。ObjC 不支持默認(rèn)參數(shù)的語法。
C++ 調(diào)用對(duì)象的方法就更接近于 C 的函數(shù)調(diào)用。兩相比較,可以發(fā)現(xiàn) ObjC 的語法讓代碼可讀性更強(qiáng)。你可以很容易的理解參數(shù)的用途,也不怕方法參數(shù)過多時(shí),一串參數(shù)寫漏或?qū)戝e(cuò)次序了。
和 C++ 一樣,ObjC 的類聲明和實(shí)現(xiàn)是分離的。但做的比 C++ 更徹底。ObjC 不能在聲明的代碼段中寫 inline 函數(shù)。這看起來犧牲了一些運(yùn)行性能,但當(dāng)實(shí)現(xiàn)部分更好的分離。作為補(bǔ)充,ObjC 有 @property ,可以幫助程序員簡化實(shí)現(xiàn),也可以讓編譯器生成更好的代碼。
聲明一個(gè)類寫成這樣:
@interface class : baseclass { type a; } - (void) method; - (void) messge: (type) param; + (id) create ; @end
ObjC 利用了 C 語言中沒有使用的符號(hào) @ 來擴(kuò)展 C 的語法,而不是用 C++ 里增加關(guān)鍵字的方式。這或許是一個(gè)對(duì)語言擴(kuò)展更簡單的做法,而不用考慮兼容性。C++ 就得精心挑選新增加的關(guān)鍵字,盡量回避那些已有代碼中高頻出現(xiàn)的單詞。
類的數(shù)據(jù)段和方法是分離的。數(shù)據(jù)描述放在 {} 中,方法寫在其后,在 @end 之前。
"-" 開頭的方法是實(shí)例方法,也就是 C++ 中的成員方法。成員方法中可以通過 self 取到實(shí)例指針,也就是 C++ 中的 this 指針。
同樣,ObjC 也支持類方法,也就是 C++ 中的 static 成員方法。通常是用來構(gòu)造實(shí)例。聲明方法是在方法名前寫一個(gè) + 號(hào)。
和 C++ 不同,ObjC 是有類對(duì)象的。類對(duì)象里有超類指針、類名、類方法列表指針,還有類對(duì)象的字節(jié)大小等元信息。而 C++ 中是用 RTTI 類實(shí)現(xiàn)不完全的類似功能的。
調(diào)用類方法和調(diào)用實(shí)例方法在語法上沒有什么不同。類名就是類對(duì)象的名字。
ObjC 不支持多繼承,沒有私有、公開這些修飾符。
ObjC 的類方法實(shí)現(xiàn)必須寫在同一個(gè)源文件里。不像 C++ 有 :: 操作符,ObjC 在實(shí)現(xiàn)方法時(shí)不寫類的名字,而是把所有實(shí)現(xiàn)都寫在 @implementation class ... @end 之間。訪問基類,也可以方便的使用 super 關(guān)鍵字。
那么,如果一個(gè)類的方法太多,不適合寫在同一個(gè)源文件中怎么辦?
ObjC 提供了 category 這個(gè)概念。
可以通過 category 為一個(gè)類添加一些方法。category 和繼承是不同的,不能為類添加新的成員變量,所以它不會(huì)改變類對(duì)象的內(nèi)存布局。添加了方法的類還是原來那個(gè)類。
category 的語法是這樣的:
@interface class (category) - newmethod; @end
這樣,就給 class 類添加了一個(gè)方法 newmethod ,并歸類在 category 下。
和 C++ 不同,ObjC 的方法更具動(dòng)態(tài)性。你可以在運(yùn)行時(shí)任意調(diào)用一個(gè)對(duì)象的方法,而不用管它是否存在。ObjC 支持 id 這個(gè)類型。 id 其實(shí)就是對(duì)象指針,任何類型的對(duì)象都可以被 id 引用,并可以方便的向其發(fā)送消息(方法調(diào)用)。如果方法不存在,會(huì)拋出運(yùn)行時(shí)錯(cuò)誤。
向一個(gè)指定類型發(fā)送一個(gè)不存在的消息,會(huì)得到一個(gè)編譯期警告,而不是編譯錯(cuò)誤。當(dāng)然,我們不能隨便忽略編譯期警告,如果我們清楚的知道運(yùn)行期這個(gè)對(duì)象可以處理這個(gè)消息,那么可以給類加一個(gè) category 但不必實(shí)現(xiàn)它。這樣,編譯器就能了解新的方法了。
利用 category 可以方便的一個(gè)龐大的類拆分成獨(dú)立的模塊。在 C++ 中,比較接近的概念是 friend ,不過 friend 不易被優(yōu)雅的使用。
既然方法可以被運(yùn)行期檢查,那么方法本身在 ObjC 中也可以被當(dāng)成一種類型來處理。比較接近的 C++ 中的概念是 成員方法指針。回顧學(xué)習(xí) C++ 的經(jīng)歷就能回憶起當(dāng)年使用 ::* 或是 ->* 的頭痛經(jīng)歷。ObjC 中的方法可以運(yùn)行期綁定, @selector(method:) 的語法也簡單的多。
在 NSObject 中就提供了一個(gè)叫 respondsToSelector: 的方法,接受一個(gè) selector 用來檢查自己是否可以接受這個(gè)消息。
ObjC 也提供了類似 Java 的 interface 或是 C++ 的純虛類的東西,在 ObjC 中被稱為 @protocol 。
@protocol 可以看成是一種沒有數(shù)據(jù)成員的虛類。一個(gè)實(shí)際的類可以聲明自己實(shí)現(xiàn)了某些協(xié)議,語法是
@interface class : base <protocol> { // variables } // methods @end
和繼承不同,一個(gè)類可以聲明多個(gè)協(xié)議。然后在 @implementation 中必須一一實(shí)現(xiàn)它們。
如上所述,ObjC 已經(jīng)做到了運(yùn)行期的方法綁定,所以 @protocol 只是做了更嚴(yán)格的編譯檢查。在新版的 ObjC 2.0 中,追加了 @optional 和 @required 用來描述那些方法的實(shí)現(xiàn)是可選的,哪些必須實(shí)現(xiàn)。
ObjC 的基礎(chǔ)庫比 C++ 更完整,標(biāo)準(zhǔn)化要好的多,也和語言結(jié)合的更緊密。
比如 NSString 是一個(gè)基礎(chǔ)類,用于處理字符串。同時(shí),語言也提供 @"string" 的語法方便的生成 NSString 對(duì)象。
ObjC 保留了 C 中的 printf 式的字符串操作形式,對(duì)比 C++ 重載移位操作符的形式,我想要更清爽一些。
對(duì)于 ObjC 對(duì)象,使用 %@ 來表示。給對(duì)象增加 description 方法就可以讓處理函數(shù)知道該如何處理這個(gè)對(duì)象的 %@ 行為。
蘋果系統(tǒng)開機(jī)時(shí)會(huì)發(fā)出“咣”的一聲,這個(gè)音效本身沒有什么美感可言,在安靜的地方比如圖書館開機(jī)時(shí)更容易引起尷尬。然而蘋果系統(tǒng)本身并未提供一個(gè)功能禁用這個(gè)音效。
我寫了這樣一個(gè)腳本,可以禁用Mac OS開機(jī)音效。其原理是,開機(jī)音效聲音的大小取決于關(guān)機(jī)前系統(tǒng)聲音的大小,如果關(guān)機(jī)前是靜音的,則開機(jī)音效也被靜音。因此在關(guān)機(jī)之前執(zhí)行一個(gè)腳本,將系統(tǒng)設(shè)為靜音,開機(jī)后再執(zhí)行一個(gè)腳本,將靜音狀態(tài)取消,即可實(shí)現(xiàn)完美去除開機(jī)音效。
除此方法外,還有一些軟件可以禁用開機(jī)音效,但這些軟件通常是通過修改nvram的方式實(shí)現(xiàn)的,具有一定的危險(xiǎn)性,而且兼容性也得不到保障,比如升級(jí)到Mac OX X Lion后這些軟件就都失效了。而這段腳本則可以在10.6 10.7等系統(tǒng)上通用。
1、/資源庫/Develpoer/Documentation/DocSets下找到三個(gè)文件:com.apple.adc.documentation.AppleSnowLeopard.CoreReference.docset,com.apple.adc.documentation.AppleiOS4_3.iOSLibrary.docset ,com.apple.ADC_Reference_Library.DeveloperTools.docset,
這就是已經(jīng)下載的文件。
2、分別查看屬性,看是否是最新版本(Mac OS X 10.6 Core Library (v409.200.0)),如果不是從http://developer.apple.com/rss/com.apple.adc.documentation.AppleSnowLeopard.atom下載最新版本。
3、提升當(dāng)前用戶讀寫權(quán)限。
以上三步就能搞定,如果問題,繼續(xù)補(bǔ)充討論。
類似問題一:Xcode4出現(xiàn)“Internal error installing Mac OS X 10.6 Core Library”錯(cuò)誤
解決辦法是:
1、進(jìn)入/Develpoer/Documentation/DocSets刪除舊的com.apple.adc.documentation.AppleSnowLeopard.CoreReference.docset
2、手動(dòng)下載http://devimages.apple.com/docsets/20110621/com.apple.adc.documentation.AppleSnowLeopard.CoreReference.xar
$ curl -C -O http://devimages.apple.com/docsets/20110621/com.apple.adc.documentation.AppleSnowLeopard.CoreReference.xar
解壓到/Develpoer/Documentation/DocSets目錄下
$ cd /Develpoer/Documentation/DocSets
$ xar -x -f com.apple.adc.documentation.AppleSnowLeopard.CoreReference.xar
3、提升訪問權(quán)限,不然會(huì)重新下載并安裝失敗。
$ $ sudo chown -R -P _devdocs /Developer/Documentation/DocSets/com.apple.adc.documentation.AppleSnowLeopard.CoreReference.docset
類似問題二:Xcode4出現(xiàn)“Internal error installing IOS 4.3 Library”錯(cuò)誤
解決辦法:
iOS 4.3 Library (v. 38.103)
API reference and conceptual documentation for iOS 4.3.
Copyright © 2011 Apple Inc. All rights reserved.
Feed: http://developer.apple.com/rss/com.apple.adc.documentation.AppleiPhone4_3.atom
Web Root URL:
Identifier: com.apple.adc.documentation.AppleiOS4_3.iOSLibrary
Installed Location: /Developer/Platforms/iPhoneOS.platform/Developer/Documentation/DocSets/com.apple.adc.documentation.AppleiOS4_3.iOSLibrary.docset
IOS 4.3 Library 的安裝目錄是:
/Developer/Platforms/iPhoneOS.platform/Developer/Documentation/DocSets/com.apple.adc.documentation.AppleiOS4_3.iOSLibrary.docset
把iPhone的文檔解壓到/Developer/Platforms/iPhoneOS.platform/Developer/Documentation/DocSets/下。
解壓縮方法:
sudo xar -xf com.apple.adc.documentation.AppleiOS4_3.iOSLibrary.Xcode4.38.55.xarsudo chown -R -P _devdocs com.apple.adc.documentation.AppleiOS4_3.iOSLibrary.docsetsudo chmod 775 com.apple.adc.documentation.AppleiOS4_3.iOSLibrary.docset執(zhí)行命令的時(shí)候注意把xcode關(guān)掉.或者執(zhí)行完畢重啟xcode4類似問題三:
解決辦法:
Mac OS X 10.7 Core Library (v. 410.26)
Copyright © 2011 Apple Inc. All rights reserved.
Feed: http://developer.apple.com/rss/com.apple.adc.documentation.AppleLion.atom
Web Root URL: https://developer.apple.com/library/etc/redirect/xcode/mac/548/
Identifier: com.apple.adc.documentation.AppleLion.CoreReference
Installed Location: /Developer/Documentation/DocSets/com.apple.adc.documentation.AppleLion.CoreReference.docset
根據(jù)得到的版本號(hào)和feed地址,使用safari或者firefox打開頁面選擇最新的版本下載,解壓縮到安裝目錄,如圖中所示
然后要修改解壓出來的docset所有者信息和文件屬性
sudo chown -R -P _devdocs:wheel com.apple.adc.documentation.AppleLion.CoreReference.docset
sudo chmod 775 com.apple.adc.documentation.AppleLion.CoreReference.docset
sudo chown -R -P _devdocs:wheel com.apple.adc.documentation.AppleiOS4_3.iOSLibrary.docset
sudo chmod 775 com.apple.adc.documentation.AppleiOS4_3.iOSLibrary.docset
然后重新啟動(dòng)Xcode,就能查看文檔了
113 LoadModule bonjour_module libexec/apache2/mod_bonjour.so114 #LoadModule php5_module libexec/apache2/libphp5.so #就是這行115 #LoadModule fastcgi_module libexec/apache2/mod_fastcgi.so
114 LoadModule php5_module libexec/apache2/libphp5.so
# cp /etc/php.ini.default /etc/php.ini
305 ;error_reporting = E_ALL & ~E_NOTICE
305 error_reporting = E_ALL
# apachectl -k restart
cp /etc/httpd/users/$USER.conf /etc/apache2/users/
復(fù)制代碼
|
復(fù)制代碼
|
復(fù)制代碼
|
復(fù)制代碼
|
復(fù)制代碼
|
iPhone內(nèi)置的Safari程序,點(diǎn)URL條,鍵盤和URL條中間部分變灰顯示,然后隨著URL的輸入,在中間以UITableView顯示搜索的結(jié)果。好多iPhone程序也都有類似的效果。這是如何實(shí)現(xiàn)的呢?下面說一下我的實(shí)現(xiàn)方法。
首先注冊(cè)鍵盤事件UIKeyboardWillShowNotification的監(jiān)聽 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; 程序在點(diǎn)擊textField或searchBar,鍵盤顯示之前,會(huì)發(fā)送UIKeyboardWillShowNotification通知消息到我們注冊(cè)的對(duì)象。在keyboardWillShow方法里,我們可以在要變灰的位置上加一個(gè)背景著色為黑色的UIView,并將其alpha屬性設(shè)為0.9,以達(dá)到效果 - (void)keyboardWillShow:(NSNotification*)aNotification { if (keyboardShown) return; NSDictionary* info = [aNotification userInfo]; NSValue* aValue = [info objectForKey:UIKeyboardBoundsUserInfoKey]; //鍵盤的大小 CGSize keyboardRect = [aValue CGRectValue].size; //計(jì)算覆蓋上去的UIView的區(qū)域,因?yàn)殒I盤始終是在上面的,所以UIView *maskView下面可以大些,主要不要蓋住上面的searchBar之類的內(nèi)容。要顯示結(jié)果的UITableView的大小則要根據(jù)鍵盤的大小算出確切的中間區(qū)域 ... //將maskView移動(dòng)最前面 [window bringSubviewToFront:maskView]; maskView.alpha = 0.0; //設(shè)置動(dòng)畫和maskView最終的alpha值 [UIView beginAnimations:nil context:NULL]; [UIView setAnimationDuration:0.5]; maskView.alpha = 0.9; [UIView commitAnimations]; keyboardShown = YES; } keyboardShown是用來跟蹤鍵盤是否已經(jīng)顯示的布爾變量。如果有多個(gè)文本域,之間切換時(shí)雖然鍵盤不變,仍會(huì)生成UIKeyboardWillShowNotification。通過變量keyboardShown跟蹤鍵盤是不是真的隱藏,可以保證這個(gè)效果只執(zhí)行一次。 當(dāng)searchBar有輸入時(shí),可參考官方例子TableSearch,把UITableView加到上面的maskView上。 當(dāng)鍵盤隱藏時(shí),把UITableView移掉,將maskView的alpha屬性設(shè)為0,即可隱藏maskView。 實(shí)現(xiàn)方法可以更靈活,大體思路應(yīng)該就是這樣吧。 轉(zhuǎn)自:http://hi.baidu.com/programme/blog/item/6f8e4c08359015920b7b8249.html
|
自從升級(jí)lion后內(nèi)存使用過大一直是一個(gè)很頭疼的問題,一個(gè)不小心4G內(nèi)存就只剩幾百M(fèi)了。
買了一根4G的內(nèi)存條替換以前的2G,這樣就有6G內(nèi)存了。
本來以為沒什么問題了,但是機(jī)器跑久了,6G內(nèi)存的可用空間還是會(huì)用的所剩無幾。
已使用的內(nèi)存分為3種,聯(lián)動(dòng)、活躍和非活躍的,具體介紹見這里。
簡單的說,OS X的內(nèi)存使用情況分為wired、active、inactive、free四種。
wired是系統(tǒng)核心占用的,永遠(yuǎn)不會(huì)從系統(tǒng)物理內(nèi)存種驅(qū)除。
active表示這些內(nèi)存數(shù)據(jù)正在使用中,或者剛被使用過。
inactive表示這些內(nèi)存中的數(shù)據(jù)是有效的,但是最近沒有被使用。
free, 表示這些內(nèi)存中的數(shù)據(jù)是無效的,這些空間可以隨時(shí)被程序使用。
當(dāng)free memory低于某個(gè)值(由實(shí)際內(nèi)存大小決定),系統(tǒng)則會(huì)按照一定順序使用inactive的資源。將inactive的資源通過一定原則釋放成free。供程序使用。如果active的內(nèi)存資源一段時(shí)間沒有被使用,也會(huì)被暫時(shí)改為inactive狀態(tài)。同樣,當(dāng)需要時(shí)這部分inactive內(nèi)存資源也會(huì)釋放成free供程序使用。那么被釋放的部分就會(huì)分配到磁盤虛擬的內(nèi)存中。(這也是為什么當(dāng)磁盤可用空間低于10G的時(shí)候會(huì)影響系統(tǒng)速度的原因)。
所以,當(dāng)系統(tǒng)里有少量的free memory和大量的inactive memory,是正常現(xiàn)象。只要系統(tǒng)或程序需要時(shí),系統(tǒng)就會(huì)將其轉(zhuǎn)換并使用。但是,如果系統(tǒng)的free memory和inactive memory都很小,而active memory很大,則說明你的內(nèi)存不夠了。
以上說明OS X對(duì)于內(nèi)存的管理不需要我們自己來操心。一切都由系統(tǒng)自己動(dòng)來平衡。
而WIN系統(tǒng)為了兼容不規(guī)范的程序,系統(tǒng)允許程序長時(shí)間或一直占用內(nèi)存不釋放。所以需要常常重啟。
如果你確實(shí)需要手動(dòng)的清理inactive memory,那么,可以在終端執(zhí)行以下命令。
1.添加QuartzCore.framework
2.實(shí)現(xiàn)代碼
轉(zhuǎn)自:http://gekie.iteye.com/blog/1088427
這幾天把玩新入手的iPod Touch 4,郁悶的是在Win7 64位版本下iTune一直表現(xiàn)不佳,第一次安裝后怎么都好用,第二次運(yùn)行就會(huì)報(bào)錯(cuò)——未找到QuickTime,iTune運(yùn)行需要QuickTime等等,卸載重裝問題依舊。在網(wǎng)上發(fā)現(xiàn)如下解決辦法一蹴而就,終于開心的同步了。
1、在Program Files下的QuickTime目錄下找到QTCF.dll文件
2、復(fù)制到windows\system和windows\system32兩個(gè)目錄下。
問題解決~
轉(zhuǎn)自:http://marguin.info/article/423.htm
相關(guān)鏈接:http://pitaka.blogbus.com/logs/83643233.html
服務(wù)或協(xié)議名稱列中列出了已注冊(cè)到 Internet 編號(hào)分配機(jī)構(gòu) (http://www.iana.org/) 的服務(wù)(除了標(biāo)注為“未注冊(cè)使用”的服務(wù)之外)。使用這些服務(wù)或協(xié)議的 Apple 產(chǎn)品的名稱顯示在“使用者/其他信息”列中。
RFC 列中列出了定義特定服務(wù)或協(xié)議的“征求意見”文稿(可用于參考)的編號(hào)。RFC 文稿由 RFC Editor (http://www.rfc-editor.org/) 維護(hù)。如果多個(gè) RFC 定義一個(gè)協(xié)議,則此處可能僅列出其中的一個(gè) RFC。
本文將定期更新,提供發(fā)布時(shí)可獲得的信息。本文稿用作快速參考,并非能夠提供詳盡信息的文件。該表中列出的 Apple 產(chǎn)品是最常用的示例,并非詳盡的列表。有關(guān)更多信息,請(qǐng)查看表格下面的“備注”。
提示: 有些服務(wù)可能使用兩個(gè)或多個(gè)端口。建議在此列表中發(fā)現(xiàn)某產(chǎn)品第一次出現(xiàn)后,繼續(xù)搜索該名稱 (Command-F),然后重復(fù)操作 (Command-G),找到出現(xiàn)該產(chǎn)品的所有地方。例如,VPN 服務(wù)可能使用多達(dá)四個(gè)不同的端口:500、1701、1723 和 4500。
提示: 有些防火墻允許選擇性配置擁有相同端口號(hào)的 UDP 或 TCP 端口,因此請(qǐng)務(wù)必注意要配置的端口類型。例如,NFS 可能使用 TCP 2049 端口或 UDP 2049 端口,也可能同時(shí)使用兩者。如果防火墻不允許指定端口類型,對(duì)一個(gè)端口所作更改可能會(huì)同時(shí)作用于二者。
端口 | TCP 或 UDP | 服務(wù)或協(xié)議名稱 | RFC | 使用者/其他信息 |
7 | TCP/UDP | Echo | 792 | - |
20 | TCP | 文件傳輸協(xié)議(FTP) | 959 | - |
21 | TCP | FTP 控制 | 959 | - |
22 | TCP | Secure Shell (SSH) | 4250 - 4254 | - |
23 | TCP | Telnet | 854 | - |
25 | TCP | 簡單郵件傳輸協(xié)議(SMTP) | 5321 |
Mail(用于發(fā)送電子郵件);MobileMe Mail(發(fā)送) |
53 | TCP/UDP | 域名系統(tǒng)(DNS) | 1034 | MacDNS、FaceTime |
67 | UDP | Bootstrap 協(xié)議服務(wù)器(BootP、bootps) | 951 | NetBoot via DHCP |
68 | UDP | Bootstrap 協(xié)議客戶端(bootpc) | 951 | NetBoot via DHCP |
69 | UDP | 簡單文件傳輸協(xié)議(TFTP) | 1350 | - |
79 | TCP | Finger | 1288 | - |
80 | TCP | 超文本傳輸協(xié)議(HTTP) | 2616 | 萬 維網(wǎng)、MobileMe、Sherlock、QuickTime 安裝程序、iTunes Store 和廣播、軟件更新、RAID 管理、備份、iCal 日歷發(fā)布、iWeb、MobileMe 網(wǎng)絡(luò)畫廊發(fā)布、WebDAV (iDisk)、Final Cut Server、AirTunes/AirPlay |
88 | TCP | Kerberos | 4120 | - |
106 | TCP | 密碼服務(wù)器 (未注冊(cè)使用) |
- | Mac OS X Server 密碼服務(wù)器 |
110 | TCP | 郵局協(xié)議(POP3) 身份驗(yàn)證郵局協(xié)議(APOP) |
1939 | Mail(用于接收電子郵件) |
111 | TCP/UDP | 遠(yuǎn)程過程調(diào)用(RPC) | 1057、1831 | 端口映射器 (sunrpc) |
113 | TCP | 標(biāo)識(shí)協(xié)議 | 1413 | - |
115 | TCP | 安全文件傳輸程序(SFTP) | 913 | 注:某些機(jī)構(gòu)會(huì)在此端口引用“簡單文件傳輸協(xié)議”或“安全文件傳輸協(xié)議”。 |
119 | TCP | 網(wǎng)絡(luò)新聞傳輸協(xié)議(NNTP) | 3977 | 由讀取新聞組的應(yīng)用程序使用。 |
123 | TCP/UDP | 網(wǎng)絡(luò)時(shí)間協(xié)議(NTP) | 1305 | “日期與時(shí)間”偏好設(shè)置。用于網(wǎng)絡(luò)時(shí)間服務(wù)器,AppleTV 網(wǎng)絡(luò)時(shí)間服務(wù)器同步 |
137 | UDP | Windows Internet 命名服務(wù)(WINS) | - | - |
138 | UDP | NETBIOS 數(shù)據(jù)報(bào)服務(wù) | - | Windows 數(shù)據(jù)報(bào)服務(wù)、Windows 網(wǎng)上鄰居 |
139 | TCP | 服務(wù)器信息塊(SMB) | - | 由 Microsoft Windows 文件和打印服務(wù)(如 Mac OS X 中的 Windows 共享)使用。 |
143 | TCP | Internet 消息訪問協(xié)議(IMAP) | 3501 | Mail(用于接收電子郵件);MobileMe Mail (IMAP) |
161 | UDP | 簡單網(wǎng)絡(luò)管理協(xié)議(SNMP) | 1157 | - |
192 | UDP | - | - | AirPort 基站 PPP 狀態(tài)或發(fā)現(xiàn)(特定配置)、AirPort 管理實(shí)用程序、AirPort Express 助理 |
311 | TCP | Server Admin、Workgroup Manager、Server Monitor、Xsan Admin | - | 遠(yuǎn)程服務(wù)器管理 |
389 | TCP | 輕量級(jí)目錄訪問協(xié)議(LDAP) | 4511 | 由查找地址的應(yīng)用程序(如 Mail 和地址簿)使用。 |
427 | TCP/UDP | Service Location Protocol (SLP) | 2608 | 網(wǎng)絡(luò)瀏覽器 |
443 | TCP | 安全套接字層(SSL 或“HTTPS”) | - | 受保護(hù)的網(wǎng)站、iTunes Store、FaceTime、Game Center、MobileMe(鑒定、iDisk、iDisk Sync 和 MobileMe Syn)、AirTunes/AirPlay |
445 | TCP | Microsoft SMB 域服務(wù)器 | - | - |
497 | TCP/UDP | Dantz Retrospect | - | - |
500 | UDP | ISAKMP/IKE | - | Mac OS X Server VPN 服務(wù)、回到我的 Mac(MobileMe、Mac OS X v10.5 或更高版本)。 |
514 | TCP | Shell | - | - |
514 | UDP | Syslog | - | - |
515 | TCP | 行式打印機(jī)(LPR)、Line Printer Daemon (LPD) | - | 用于通過網(wǎng)絡(luò)打印機(jī)打印,Mac OS X 中的打印機(jī)共享。 |
532 | TCP | 網(wǎng)絡(luò)新聞 | - | - |
548 | TCP | 通過 TCP 的 Apple 檔案分享協(xié)議(AFP) | - | AppleShare、個(gè)人文件共享、Apple 文件服務(wù) |
554 | TCP/UDP | 實(shí)時(shí)流協(xié)議(RTSP) | 2326 | QuickTime Streaming Server (QTSS)、流媒體播放器、AirTunes/AirPlay |
587 | TCP | 用于 Mail 的信息提交(經(jīng)過身份驗(yàn)證的 SMTP) | 4409 | Mail(用于發(fā)送郵件)、MobileMe Mail(SMTP 身份驗(yàn)證) |
600-1023 | TCP/UDP | 基于 Mac OS X RPC 的服務(wù) | - | 例如,由 NetInfo 使用。 |
623 | UDP | Lights-Out-Monitoring | - | 由 Intel Xserves 的 Lights-Out-Monitoring (LOM) 功能使用;由 Server Monitor 使用 |
625 | TCP | 目錄服務(wù)代理(DSProxy)(未注冊(cè)使用) | - | DirectoryService、Open Directory Assistant、Workgroup Manager。注:此端口已注冊(cè)給 DEC DLM。 |
626 | TCP | AppleShare Imap Admin (ASIA) | - | IMAP 管理(Mac OS X Server 10.2.8 或更低版本、AppleShare IP 6) |
626 | UDP | serialnumberd(未注冊(cè)使用) | - | Server 序列號(hào)注冊(cè)(Xsan、Mac OS X Server 10.3 及更高版本) |
631 | TCP | Internet 打印協(xié)議(IPP) | 2910 | Mac OS X 打印機(jī)共享 |
636 | TCP | 安全 LDAP | - | - |
660 | TCP | MacOS Server Admin | - | Server Admin(AppleShare IP 和 Mac OS X Server)、服務(wù)器設(shè)置 |
687 | TCP | 添加要使用的 Server Admin | - | - |
749 | TCP/UDP | Kerberos 5 admin/changepw | - | - |
985 | TCP | NetInfo 靜態(tài)端口 | - | - |
993 | TCP | Mail IMAP SSL | - | MobileMe Mail (SSL IMAP) |
995 | TCP/UDP | Mail POP SSL | - | - |
1085 | TCP/UDP | WebObjects | - | - |
1099 和 8043 | TCP | 對(duì) JBOSS 的遠(yuǎn)程 RMI 和 IIOP 訪問 | - | - |
1220 | TCP | QT Server Admin | - | 用于管理 QuickTime Streaming Server。 |
1649 | TCP | IP 故障轉(zhuǎn)移 | - | - |
1701 | UDP | L2TP | - | Mac OS X Server VPN 服務(wù) |
1723 | TCP | PPTP | - | Mac OS X Server VPN 服務(wù) |
2049 | TCP/UDP | 網(wǎng)絡(luò)文件系統(tǒng)(NFS)(第 3 版) | 1094 | - |
2236 | TCP | Macintosh Manager(未注冊(cè)使用) | - | Macintosh Manager |
2336 | TCP | 可移植主目錄 | - | |
3004 | TCP | iSync | - | - |
3031 | TCP/UDP | 遠(yuǎn)程 AppleEvent | - | 程序鏈接、遠(yuǎn)程 Apple 事件 |
3283 | TCP/UDP | 網(wǎng)絡(luò)助理 | - | Apple Remote Desktop 2.0 或更高版本(報(bào)告功能) |
3306 | TCP | MySQL | - | - |
3478-3497 | UDP | FaceTime、Game Center | ||
3632 | TCP | 分布式編譯器 | - | - |
3659 | TCP/UDP | 簡單身份驗(yàn)證和安全層(SASL) | - | Mac OS X Server 密碼服務(wù)器 |
3689 | TCP | 數(shù)字音頻訪問協(xié)議(DAAP) | - | iTunes 音樂共享、AirTunes/AirPlay |
4080 | TCP | - | - | |
4111 | TCP | XGrid | - | - |
4398 | UDP | Game Center | ||
4500 | UDP | IKE NAT Traversal | - |
Mac OS X Server VPN 服務(wù)、回到我的 Mac(MobileMe、Mac OS X v10.5 或更高版本)。 注:通過 Apple 訪問點(diǎn)(如 AirPort 基站)配置時(shí),VPN 和 MobileMe 會(huì)互相排斥;將會(huì)優(yōu)先使用 MobileMe。 |
49152-65535 | TCP | Xsan | - | Xsan 文件系統(tǒng)存取 |
5003 | TCP | FileMaker - 名稱綁定和傳輸 | - | - |
5009 | TCP | (未注冊(cè)使用) | - | AirPort 管理實(shí)用程序、AirPort Express 助理 |
5060 | UDP | 會(huì)話啟動(dòng)協(xié)議(SIP) | 3261 | iChat |
5100 | TCP | - | - | Mac OS X 攝像頭和掃描儀共享 |
5190 | TCP/UDP | America Online (AOL) | - | iChat 和 AOL Instant Messenger、文件傳輸 |
5222 | TCP | XMPP (Jabber) | 3920 | iChat 和 Jabber 信息 |
5223 | TCP | 通過 SSL 的 XMPP,Apple 推送通知服務(wù) | - | MobileMe(自動(dòng)同步通知)(請(qǐng)參見備注 9)、APN、FaceTime、Game Center |
5269 | TCP | XMPP 服務(wù)器對(duì)服務(wù)器的通信 | 3920 | iChat 服務(wù)器 |
5297 | TCP | - | - | iChat(本地通信)、Bonjour |
5298 | TCP/UDP | - | - | iChat(本地通信)、Bonjour |
5353 | UDP | 多址廣播 DNS(MDNS) | - | Bonjour (mDNSResponder)、AirTunes/AirPlay |
5354 | TCP | 多址廣播 DNS 響應(yīng)器 | - | 回到我的 Mac |
5432 | TCP | ARD 2.0 數(shù)據(jù)庫 | - | - |
5678 | UDP | SNATMAP 服務(wù)器 | - | 端 口 5678 上的 SNATMAP 服務(wù)用于確定主機(jī)的外部 Internet 地址,以便 iChat 用戶之間的連接可在網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)之后正常使用。SNATMAP 服務(wù)僅將已連接到它的 Internet 地址告知客戶端。此服務(wù)在 Apple 服務(wù)器上運(yùn)行,但不會(huì)將個(gè)人信息發(fā)送給 Apple。在使用了特定 iChat AV 功能的情況下,將與此服務(wù)建立聯(lián)系。阻止此服務(wù)可能會(huì)導(dǎo)致與使用 NAT 的網(wǎng)絡(luò)上的主機(jī)之間的 iChat AV 連接出現(xiàn)問題。 |
5897-5898 | UDP | (未注冊(cè)使用) | - | xrdiags |
5900 | TCP | 虛擬網(wǎng)絡(luò)計(jì)算(VNC) (未注冊(cè)使用) |
- | Apple Remote Desktop 2.0 或更高版本(監(jiān)視/控制功能) 屏幕共享(Mac OS X 10.5 或更高版本) |
5988 | TCP | WBEM HTTP | - | Apple Remote Desktop 2.x(請(qǐng)參閱 http://www.dmtf.org/about/faq/wbem) |
6970-9999 | UDP | - | - | QuickTime Streaming Server |
7070 | TCP | RTSP(未注冊(cè)使用) 自動(dòng)路由器配置協(xié)議(ARCP - 已注冊(cè)使用) |
- | QuickTime Streaming Server (RTSP) |
7070 | UDP | RTSP 備用 | - | QuickTime Streaming Server |
7777 | TCP | iChat 服務(wù)器文件傳輸代理(未注冊(cè)使用) | - | - |
8000-8999 | TCP | - | - | Web 服務(wù)、iTunes 廣播流 |
8005 | TCP | Tomcat 遠(yuǎn)程關(guān)閉 | - | - |
8008 | TCP | iCal 服務(wù) | - | Mac OS X Server v10.5 及更高版本 |
8080 | TCP | Apache 的備用端口Web 服務(wù) | - | - |
8085-8087 | TCP | Wiki 服務(wù) | - | Mac OS X Server v10.5 及更高版本 |
8088 | TCP | “軟件更新”服務(wù) | - | Mac OS X Server v10.4 及更高版本 |
8089 | TCP | Web 電子郵件規(guī)則 | - | Mac OS X Server v10.6 及更高版本 |
8096 | TCP | Web 密碼重設(shè) | - | Mac OS X Server v10.6.3 及更高版本 |
8170 | TCP | HTTPS(Web 服務(wù)/網(wǎng)站) | - |
Podcast Capture/Podcast CLI |
8171 | TCP | HTTP(Web 服務(wù)/網(wǎng)站) | - |
Podcast Capture/Podcast CLI |
8175 | TCP | Pcast 隧道 | - | pcastagentd(用于控制操作、攝像頭等) |
8443 | TCP | iCal 服務(wù) (SSL) | - | Mac OS X Server v10.5 及更高版本 |
8800 | TCP | 地址簿服務(wù) | - | Mac OS X Server v10.6 及更高版本 |
8843 | TCP | 地址簿服務(wù) (SSL) | - | Mac OS X Server v10.6 及更高版本 |
8821 | TCP | Stored(存儲(chǔ)服務(wù)器以與服務(wù)器進(jìn)行通信) | - | Final Cut Server |
8891 | TCP | ldsd(數(shù)據(jù)傳輸) | - | Final Cut Server |
9006、8080、8443 | - | Tomcat Standalone 和 JBOSS (J2EE) 的 HTTP 和 HTTPS 端口 | - | - |
11211 | memcached(未注冊(cè)) | iCal 服務(wù)器 | ||
16080 | TCP | - | - | 使用性能緩存的 Web 服務(wù) |
16384-16403 | UDP | 實(shí)時(shí)傳輸協(xié)議(RTP)、實(shí)時(shí)控制協(xié)議(RTCP) | - | iChat AV(音頻 RTP、RTCP;視頻 RTP、RTCP) |
16384-16387 | UDP | 實(shí)時(shí)傳輸協(xié)議(RTP)、實(shí)時(shí)控制協(xié)議(RTCP) | - | FaceTime、Game Center |
16393-16402 | UDP | 實(shí)時(shí)傳輸協(xié)議(RTP)、實(shí)時(shí)控制協(xié)議(RTCP) | - | FaceTime、Game Center |
16403-16472 | UDP | 實(shí)時(shí)傳輸協(xié)議(RTP)、實(shí)時(shí)控制協(xié)議(RTCP) | Game Center | |
24000-24999 | TCP | - | - | 使用性能緩存的 Web 服務(wù) |
42000-42999 | TCP | - | - | iTunes 廣播流 |
50003 | - | FileMaker 服務(wù)器服務(wù) | - | - |
50006 | - | FileMaker 幫助工具服務(wù) | - | - |
備注
標(biāo)簽: 雜談 | 分類: iPhone開發(fā) |