- purge
最近稍微學習了一點 Objective-C ,做筆記和做編碼練習都是鞏固學習的好方法。整理記錄腦子里的新知識有助于理清思路,發(fā)現(xiàn)知識盲點以及錯誤的理解。
Objective-C 和 C++ 同樣從兼容 C 語言開始,以給 C 語言增加面向?qū)ο鬄槌踔裕麄兊某霈F(xiàn)的時間都很類似(1983 年左右)。但面向?qū)ο缶幊痰脑搭^卻不同:C++ 受 Simula 和 Ada 的影響比較多,而 Objective-C 的相關思想源至 Smalltalk ,最終的結(jié)果是他們在對象模型上有不小的差異。
以我這些天粗淺的了解,Objective-C 似乎比 C++ 更強調(diào)類型的動態(tài)性,而犧牲了一些執(zhí)行性能。不過這些犧牲,由于模型清晰,可以在今天,由更先進的編譯技術來彌補了。
我對 C++ 的認知比 Objective-C 要多的多,所以對 C++ 開發(fā)中會遇到的問題的了解也多的多。在學習 Objective-C 的過程中,我發(fā)現(xiàn)很多地方都可以填上曾經(jīng)在 C++ 開發(fā)中遇到的問題。當然,Objective-C 一定也有它自己的坑,只是我才剛開始,沒有踩到過罷了。
ObjC 的類方法調(diào)用的形式,更接近于向?qū)ο蟀l(fā)送消息。語法寫作:
[obj message]
如果方法帶有參數(shù),那么就寫作
[obj param:value]
方法和名稱和參數(shù)的名稱是一體的,參數(shù)決定了方法是什么。如果有多個參數(shù),那么寫作:
[obj param1:value1 param2:value2]
注意,如果一個類有兩個方法,一個有一個參數(shù),一個有兩個參數(shù)。即使兩個參數(shù)的版本中有一個參數(shù)名稱和單個參數(shù)版本的相同,它們也是兩個不同的方法。ObjC 不支持默認參數(shù)的語法。
C++ 調(diào)用對象的方法就更接近于 C 的函數(shù)調(diào)用。兩相比較,可以發(fā)現(xiàn) ObjC 的語法讓代碼可讀性更強。你可以很容易的理解參數(shù)的用途,也不怕方法參數(shù)過多時,一串參數(shù)寫漏或?qū)戝e次序了。
和 C++ 一樣,ObjC 的類聲明和實現(xiàn)是分離的。但做的比 C++ 更徹底。ObjC 不能在聲明的代碼段中寫 inline 函數(shù)。這看起來犧牲了一些運行性能,但當實現(xiàn)部分更好的分離。作為補充,ObjC 有 @property ,可以幫助程序員簡化實現(xiàn),也可以讓編譯器生成更好的代碼。
聲明一個類寫成這樣:
@interface class : baseclass { type a; } - (void) method; - (void) messge: (type) param; + (id) create ; @end ObjC 利用了 C 語言中沒有使用的符號 @ 來擴展 C 的語法,而不是用 C++ 里增加關鍵字的方式。這或許是一個對語言擴展更簡單的做法,而不用考慮兼容性。C++ 就得精心挑選新增加的關鍵字,盡量回避那些已有代碼中高頻出現(xiàn)的單詞。
類的數(shù)據(jù)段和方法是分離的。數(shù)據(jù)描述放在 {} 中,方法寫在其后,在 @end 之前。
"-" 開頭的方法是實例方法,也就是 C++ 中的成員方法。成員方法中可以通過 self 取到實例指針,也就是 C++ 中的 this 指針。
同樣,ObjC 也支持類方法,也就是 C++ 中的 static 成員方法。通常是用來構(gòu)造實例。聲明方法是在方法名前寫一個 + 號。
和 C++ 不同,ObjC 是有類對象的。類對象里有超類指針、類名、類方法列表指針,還有類對象的字節(jié)大小等元信息。而 C++ 中是用 RTTI 類實現(xiàn)不完全的類似功能的。
調(diào)用類方法和調(diào)用實例方法在語法上沒有什么不同。類名就是類對象的名字。
ObjC 不支持多繼承,沒有私有、公開這些修飾符。
ObjC 的類方法實現(xiàn)必須寫在同一個源文件里。不像 C++ 有 :: 操作符,ObjC 在實現(xiàn)方法時不寫類的名字,而是把所有實現(xiàn)都寫在 @implementation class ... @end 之間。訪問基類,也可以方便的使用 super 關鍵字。
那么,如果一個類的方法太多,不適合寫在同一個源文件中怎么辦?
ObjC 提供了 category 這個概念。
可以通過 category 為一個類添加一些方法。category 和繼承是不同的,不能為類添加新的成員變量,所以它不會改變類對象的內(nèi)存布局。添加了方法的類還是原來那個類。
category 的語法是這樣的:
@interface class (category) - newmethod; @end
這樣,就給 class 類添加了一個方法 newmethod ,并歸類在 category 下。
和 C++ 不同,ObjC 的方法更具動態(tài)性。你可以在運行時任意調(diào)用一個對象的方法,而不用管它是否存在。ObjC 支持 id 這個類型。 id 其實就是對象指針,任何類型的對象都可以被 id 引用,并可以方便的向其發(fā)送消息(方法調(diào)用)。如果方法不存在,會拋出運行時錯誤。
向一個指定類型發(fā)送一個不存在的消息,會得到一個編譯期警告,而不是編譯錯誤。當然,我們不能隨便忽略編譯期警告,如果我們清楚的知道運行期這個對象可以處理這個消息,那么可以給類加一個 category 但不必實現(xiàn)它。這樣,編譯器就能了解新的方法了。
利用 category 可以方便的一個龐大的類拆分成獨立的模塊。在 C++ 中,比較接近的概念是 friend ,不過 friend 不易被優(yōu)雅的使用。
既然方法可以被運行期檢查,那么方法本身在 ObjC 中也可以被當成一種類型來處理。比較接近的 C++ 中的概念是 成員方法指針。回顧學習 C++ 的經(jīng)歷就能回憶起當年使用 ::* 或是 ->* 的頭痛經(jīng)歷。ObjC 中的方法可以運行期綁定, @selector(method:) 的語法也簡單的多。
在 NSObject 中就提供了一個叫 respondsToSelector: 的方法,接受一個 selector 用來檢查自己是否可以接受這個消息。
ObjC 也提供了類似 Java 的 interface 或是 C++ 的純虛類的東西,在 ObjC 中被稱為 @protocol 。
@protocol 可以看成是一種沒有數(shù)據(jù)成員的虛類。一個實際的類可以聲明自己實現(xiàn)了某些協(xié)議,語法是
@interface class : base <protocol> { // variables } // methods @end 和繼承不同,一個類可以聲明多個協(xié)議。然后在 @implementation 中必須一一實現(xiàn)它們。
如上所述,ObjC 已經(jīng)做到了運行期的方法綁定,所以 @protocol 只是做了更嚴格的編譯檢查。在新版的 ObjC 2.0 中,追加了 @optional 和 @required 用來描述那些方法的實現(xiàn)是可選的,哪些必須實現(xiàn)。
ObjC 的基礎庫比 C++ 更完整,標準化要好的多,也和語言結(jié)合的更緊密。
比如 NSString 是一個基礎類,用于處理字符串。同時,語言也提供 @"string" 的語法方便的生成 NSString 對象。
ObjC 保留了 C 中的 printf 式的字符串操作形式,對比 C++ 重載移位操作符的形式,我想要更清爽一些。
對于 ObjC 對象,使用 %@ 來表示。給對象增加 description 方法就可以讓處理函數(shù)知道該如何處理這個對象的 %@ 行為。
蘋果系統(tǒng)開機時會發(fā)出“咣”的一聲,這個音效本身沒有什么美感可言,在安靜的地方比如圖書館開機時更容易引起尷尬。然而蘋果系統(tǒng)本身并未提供一個功能禁用這個音效。
我寫了這樣一個腳本,可以禁用Mac OS開機音效。其原理是,開機音效聲音的大小取決于關機前系統(tǒng)聲音的大小,如果關機前是靜音的,則開機音效也被靜音。因此在關機之前執(zhí)行一個腳本,將系統(tǒng)設為靜音,開機后再執(zhí)行一個腳本,將靜音狀態(tài)取消,即可實現(xiàn)完美去除開機音效。
除此方法外,還有一些軟件可以禁用開機音效,但這些軟件通常是通過修改nvram的方式實現(xiàn)的,具有一定的危險性,而且兼容性也得不到保障,比如升級到Mac OX X Lion后這些軟件就都失效了。而這段腳本則可以在10.6 10.7等系統(tǒng)上通用。
1、/資源庫/Develpoer/Documentation/DocSets下找到三個文件: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、提升當前用戶讀寫權(quán)限。
以上三步就能搞定,如果問題,繼續(xù)補充討論。
類似問題一:Xcode4出現(xiàn)“Internal error installing Mac OS X 10.6 Core Library”錯誤
解決辦法是:
1、進入/Develpoer/Documentation/DocSets刪除舊的com.apple.adc.documentation.AppleSnowLeopard.CoreReference.docset
$ 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)限,不然會重新下載并安裝失敗。
$ $ 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”錯誤
解決辦法:
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í)行命令的時候注意把xcode關掉.或者執(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ù)得到的版本號和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
然后重新啟動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/
復制代碼
|
復制代碼
|
復制代碼
|
復制代碼
|
復制代碼
|
|
iPhone內(nèi)置的Safari程序,點URL條,鍵盤和URL條中間部分變灰顯示,然后隨著URL的輸入,在中間以UITableView顯示搜索的結(jié)果。好多iPhone程序也都有類似的效果。這是如何實現(xiàn)的呢?下面說一下我的實現(xiàn)方法。
首先注冊鍵盤事件UIKeyboardWillShowNotification的監(jiān)聽 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; 程序在點擊textField或searchBar,鍵盤顯示之前,會發(fā)送UIKeyboardWillShowNotification通知消息到我們注冊的對象。在keyboardWillShow方法里,我們可以在要變灰的位置上加一個背景著色為黑色的UIView,并將其alpha屬性設為0.9,以達到效果 - (void)keyboardWillShow:(NSNotification*)aNotification { if (keyboardShown) return; NSDictionary* info = [aNotification userInfo]; NSValue* aValue = [info objectForKey:UIKeyboardBoundsUserInfoKey]; //鍵盤的大小 CGSize keyboardRect = [aValue CGRectValue].size; //計算覆蓋上去的UIView的區(qū)域,因為鍵盤始終是在上面的,所以UIView *maskView下面可以大些,主要不要蓋住上面的searchBar之類的內(nèi)容。要顯示結(jié)果的UITableView的大小則要根據(jù)鍵盤的大小算出確切的中間區(qū)域 ... //將maskView移動最前面 [window bringSubviewToFront:maskView]; maskView.alpha = 0.0; //設置動畫和maskView最終的alpha值 [UIView beginAnimations:nil context:NULL]; [UIView setAnimationDuration:0.5]; maskView.alpha = 0.9; [UIView commitAnimations]; keyboardShown = YES; } keyboardShown是用來跟蹤鍵盤是否已經(jīng)顯示的布爾變量。如果有多個文本域,之間切換時雖然鍵盤不變,仍會生成UIKeyboardWillShowNotification。通過變量keyboardShown跟蹤鍵盤是不是真的隱藏,可以保證這個效果只執(zhí)行一次。 當searchBar有輸入時,可參考官方例子TableSearch,把UITableView加到上面的maskView上。 當鍵盤隱藏時,把UITableView移掉,將maskView的alpha屬性設為0,即可隱藏maskView。 實現(xiàn)方法可以更靈活,大體思路應該就是這樣吧。 轉(zhuǎn)自:http://hi.baidu.com/programme/blog/item/6f8e4c08359015920b7b8249.html
|
自從升級lion后內(nèi)存使用過大一直是一個很頭疼的問題,一個不小心4G內(nèi)存就只剩幾百M了。
買了一根4G的內(nèi)存條替換以前的2G,這樣就有6G內(nèi)存了。
本來以為沒什么問題了,但是機器跑久了,6G內(nèi)存的可用空間還是會用的所剩無幾。
已使用的內(nèi)存分為3種,聯(lián)動、活躍和非活躍的,具體介紹見這里。
簡單的說,OS X的內(nèi)存使用情況分為wired、active、inactive、free四種。
wired是系統(tǒng)核心占用的,永遠不會從系統(tǒng)物理內(nèi)存種驅(qū)除。
active表示這些內(nèi)存數(shù)據(jù)正在使用中,或者剛被使用過。
inactive表示這些內(nèi)存中的數(shù)據(jù)是有效的,但是最近沒有被使用。
free, 表示這些內(nèi)存中的數(shù)據(jù)是無效的,這些空間可以隨時被程序使用。
當free memory低于某個值(由實際內(nèi)存大小決定),系統(tǒng)則會按照一定順序使用inactive的資源。將inactive的資源通過一定原則釋放成free。供程序使用。如果active的內(nèi)存資源一段時間沒有被使用,也會被暫時改為inactive狀態(tài)。同樣,當需要時這部分inactive內(nèi)存資源也會釋放成free供程序使用。那么被釋放的部分就會分配到磁盤虛擬的內(nèi)存中。(這也是為什么當磁盤可用空間低于10G的時候會影響系統(tǒng)速度的原因)。
所以,當系統(tǒng)里有少量的free memory和大量的inactive memory,是正常現(xiàn)象。只要系統(tǒng)或程序需要時,系統(tǒng)就會將其轉(zhuǎn)換并使用。但是,如果系統(tǒng)的free memory和inactive memory都很小,而active memory很大,則說明你的內(nèi)存不夠了。
以上說明OS X對于內(nèi)存的管理不需要我們自己來操心。一切都由系統(tǒng)自己動來平衡。
而WIN系統(tǒng)為了兼容不規(guī)范的程序,系統(tǒng)允許程序長時間或一直占用內(nèi)存不釋放。所以需要常常重啟。
如果你確實需要手動的清理inactive memory,那么,可以在終端執(zhí)行以下命令。
1.添加QuartzCore.framework
2.實現(xiàn)代碼
轉(zhuǎn)自:http://gekie.iteye.com/blog/1088427



這幾天把玩新入手的iPod Touch 4,郁悶的是在Win7 64位版本下iTune一直表現(xiàn)不佳,第一次安裝后怎么都好用,第二次運行就會報錯——未找到QuickTime,iTune運行需要QuickTime等等,卸載重裝問題依舊。在網(wǎng)上發(fā)現(xiàn)如下解決辦法一蹴而就,終于開心的同步了。
1、在Program Files下的QuickTime目錄下找到QTCF.dll文件
2、復制到windows\system和windows\system32兩個目錄下。
問題解決~
轉(zhuǎn)自:http://marguin.info/article/423.htm
相關鏈接:http://pitaka.blogbus.com/logs/83643233.html
服務或協(xié)議名稱列中列出了已注冊到 Internet 編號分配機構(gòu) (http://www.iana.org/) 的服務(除了標注為“未注冊使用”的服務之外)。使用這些服務或協(xié)議的 Apple 產(chǎn)品的名稱顯示在“使用者/其他信息”列中。
RFC 列中列出了定義特定服務或協(xié)議的“征求意見”文稿(可用于參考)的編號。RFC 文稿由 RFC Editor (http://www.rfc-editor.org/) 維護。如果多個 RFC 定義一個協(xié)議,則此處可能僅列出其中的一個 RFC。
本文將定期更新,提供發(fā)布時可獲得的信息。本文稿用作快速參考,并非能夠提供詳盡信息的文件。該表中列出的 Apple 產(chǎn)品是最常用的示例,并非詳盡的列表。有關更多信息,請查看表格下面的“備注”。
提示: 有些服務可能使用兩個或多個端口。建議在此列表中發(fā)現(xiàn)某產(chǎn)品第一次出現(xiàn)后,繼續(xù)搜索該名稱 (Command-F),然后重復操作 (Command-G),找到出現(xiàn)該產(chǎn)品的所有地方。例如,VPN 服務可能使用多達四個不同的端口:500、1701、1723 和 4500。
提示: 有些防火墻允許選擇性配置擁有相同端口號的 UDP 或 TCP 端口,因此請務必注意要配置的端口類型。例如,NFS 可能使用 TCP 2049 端口或 UDP 2049 端口,也可能同時使用兩者。如果防火墻不允許指定端口類型,對一個端口所作更改可能會同時作用于二者。
| 端口 | TCP 或 UDP | 服務或協(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é)議服務器(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)絡畫廊發(fā)布、WebDAV (iDisk)、Final Cut Server、AirTunes/AirPlay |
| 88 | TCP | Kerberos | 4120 | - |
| 106 | TCP | 密碼服務器 (未注冊使用) |
- | Mac OS X Server 密碼服務器 |
| 110 | TCP | 郵局協(xié)議(POP3) 身份驗證郵局協(xié)議(APOP) |
1939 | Mail(用于接收電子郵件) |
| 111 | TCP/UDP | 遠程過程調(diào)用(RPC) | 1057、1831 | 端口映射器 (sunrpc) |
| 113 | TCP | 標識協(xié)議 | 1413 | - |
| 115 | TCP | 安全文件傳輸程序(SFTP) | 913 | 注:某些機構(gòu)會在此端口引用“簡單文件傳輸協(xié)議”或“安全文件傳輸協(xié)議”。 |
| 119 | TCP | 網(wǎng)絡新聞傳輸協(xié)議(NNTP) | 3977 | 由讀取新聞組的應用程序使用。 |
| 123 | TCP/UDP | 網(wǎng)絡時間協(xié)議(NTP) | 1305 | “日期與時間”偏好設置。用于網(wǎng)絡時間服務器,AppleTV 網(wǎng)絡時間服務器同步 |
| 137 | UDP | Windows Internet 命名服務(WINS) | - | - |
| 138 | UDP | NETBIOS 數(shù)據(jù)報服務 | - | Windows 數(shù)據(jù)報服務、Windows 網(wǎng)上鄰居 |
| 139 | TCP | 服務器信息塊(SMB) | - | 由 Microsoft Windows 文件和打印服務(如 Mac OS X 中的 Windows 共享)使用。 |
| 143 | TCP | Internet 消息訪問協(xié)議(IMAP) | 3501 | Mail(用于接收電子郵件);MobileMe Mail (IMAP) |
| 161 | UDP | 簡單網(wǎng)絡管理協(xié)議(SNMP) | 1157 | - |
| 192 | UDP | - | - | AirPort 基站 PPP 狀態(tài)或發(fā)現(xiàn)(特定配置)、AirPort 管理實用程序、AirPort Express 助理 |
| 311 | TCP | Server Admin、Workgroup Manager、Server Monitor、Xsan Admin | - | 遠程服務器管理 |
| 389 | TCP | 輕量級目錄訪問協(xié)議(LDAP) | 4511 | 由查找地址的應用程序(如 Mail 和地址簿)使用。 |
| 427 | TCP/UDP | Service Location Protocol (SLP) | 2608 | 網(wǎng)絡瀏覽器 |
| 443 | TCP | 安全套接字層(SSL 或“HTTPS”) | - | 受保護的網(wǎng)站、iTunes Store、FaceTime、Game Center、MobileMe(鑒定、iDisk、iDisk Sync 和 MobileMe Syn)、AirTunes/AirPlay |
| 445 | TCP | Microsoft SMB 域服務器 | - | - |
| 497 | TCP/UDP | Dantz Retrospect | - | - |
| 500 | UDP | ISAKMP/IKE | - | Mac OS X Server VPN 服務、回到我的 Mac(MobileMe、Mac OS X v10.5 或更高版本)。 |
| 514 | TCP | Shell | - | - |
| 514 | UDP | Syslog | - | - |
| 515 | TCP | 行式打印機(LPR)、Line Printer Daemon (LPD) | - | 用于通過網(wǎng)絡打印機打印,Mac OS X 中的打印機共享。 |
| 532 | TCP | 網(wǎng)絡新聞 | - | - |
| 548 | TCP | 通過 TCP 的 Apple 檔案分享協(xié)議(AFP) | - | AppleShare、個人文件共享、Apple 文件服務 |
| 554 | TCP/UDP | 實時流協(xié)議(RTSP) | 2326 | QuickTime Streaming Server (QTSS)、流媒體播放器、AirTunes/AirPlay |
| 587 | TCP | 用于 Mail 的信息提交(經(jīng)過身份驗證的 SMTP) | 4409 | Mail(用于發(fā)送郵件)、MobileMe Mail(SMTP 身份驗證) |
| 600-1023 | TCP/UDP | 基于 Mac OS X RPC 的服務 | - | 例如,由 NetInfo 使用。 |
| 623 | UDP | Lights-Out-Monitoring | - | 由 Intel Xserves 的 Lights-Out-Monitoring (LOM) 功能使用;由 Server Monitor 使用 |
| 625 | TCP | 目錄服務代理(DSProxy)(未注冊使用) | - | DirectoryService、Open Directory Assistant、Workgroup Manager。注:此端口已注冊給 DEC DLM。 |
| 626 | TCP | AppleShare Imap Admin (ASIA) | - | IMAP 管理(Mac OS X Server 10.2.8 或更低版本、AppleShare IP 6) |
| 626 | UDP | serialnumberd(未注冊使用) | - | Server 序列號注冊(Xsan、Mac OS X Server 10.3 及更高版本) |
| 631 | TCP | Internet 打印協(xié)議(IPP) | 2910 | Mac OS X 打印機共享 |
| 636 | TCP | 安全 LDAP | - | - |
| 660 | TCP | MacOS Server Admin | - | Server Admin(AppleShare IP 和 Mac OS X Server)、服務器設置 |
| 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 | 對 JBOSS 的遠程 RMI 和 IIOP 訪問 | - | - |
| 1220 | TCP | QT Server Admin | - | 用于管理 QuickTime Streaming Server。 |
| 1649 | TCP | IP 故障轉(zhuǎn)移 | - | - |
| 1701 | UDP | L2TP | - | Mac OS X Server VPN 服務 |
| 1723 | TCP | PPTP | - | Mac OS X Server VPN 服務 |
| 2049 | TCP/UDP | 網(wǎng)絡文件系統(tǒng)(NFS)(第 3 版) | 1094 | - |
| 2236 | TCP | Macintosh Manager(未注冊使用) | - | Macintosh Manager |
| 2336 | TCP | 可移植主目錄 | - | |
| 3004 | TCP | iSync | - | - |
| 3031 | TCP/UDP | 遠程 AppleEvent | - | 程序鏈接、遠程 Apple 事件 |
| 3283 | TCP/UDP | 網(wǎng)絡助理 | - | Apple Remote Desktop 2.0 或更高版本(報告功能) |
| 3306 | TCP | MySQL | - | - |
| 3478-3497 | UDP | FaceTime、Game Center | ||
| 3632 | TCP | 分布式編譯器 | - | - |
| 3659 | TCP/UDP | 簡單身份驗證和安全層(SASL) | - | Mac OS X Server 密碼服務器 |
| 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 服務、回到我的 Mac(MobileMe、Mac OS X v10.5 或更高版本)。 注:通過 Apple 訪問點(如 AirPort 基站)配置時,VPN 和 MobileMe 會互相排斥;將會優(yōu)先使用 MobileMe。 |
| 49152-65535 | TCP | Xsan | - | Xsan 文件系統(tǒng)存取 |
| 5003 | TCP | FileMaker - 名稱綁定和傳輸 | - | - |
| 5009 | TCP | (未注冊使用) | - | AirPort 管理實用程序、AirPort Express 助理 |
| 5060 | UDP | 會話啟動協(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 推送通知服務 | - | MobileMe(自動同步通知)(請參見備注 9)、APN、FaceTime、Game Center |
| 5269 | TCP | XMPP 服務器對服務器的通信 | 3920 | iChat 服務器 |
| 5297 | TCP | - | - | iChat(本地通信)、Bonjour |
| 5298 | TCP/UDP | - | - | iChat(本地通信)、Bonjour |
| 5353 | UDP | 多址廣播 DNS(MDNS) | - | Bonjour (mDNSResponder)、AirTunes/AirPlay |
| 5354 | TCP | 多址廣播 DNS 響應器 | - | 回到我的 Mac |
| 5432 | TCP | ARD 2.0 數(shù)據(jù)庫 | - | - |
| 5678 | UDP | SNATMAP 服務器 | - | 端 口 5678 上的 SNATMAP 服務用于確定主機的外部 Internet 地址,以便 iChat 用戶之間的連接可在網(wǎng)絡地址轉(zhuǎn)換(NAT)之后正常使用。SNATMAP 服務僅將已連接到它的 Internet 地址告知客戶端。此服務在 Apple 服務器上運行,但不會將個人信息發(fā)送給 Apple。在使用了特定 iChat AV 功能的情況下,將與此服務建立聯(lián)系。阻止此服務可能會導致與使用 NAT 的網(wǎng)絡上的主機之間的 iChat AV 連接出現(xiàn)問題。 |
| 5897-5898 | UDP | (未注冊使用) | - | xrdiags |
| 5900 | TCP | 虛擬網(wǎng)絡計算(VNC) (未注冊使用) |
- | Apple Remote Desktop 2.0 或更高版本(監(jiān)視/控制功能) 屏幕共享(Mac OS X 10.5 或更高版本) |
| 5988 | TCP | WBEM HTTP | - | Apple Remote Desktop 2.x(請參閱 http://www.dmtf.org/about/faq/wbem) |
| 6970-9999 | UDP | - | - | QuickTime Streaming Server |
| 7070 | TCP | RTSP(未注冊使用) 自動路由器配置協(xié)議(ARCP - 已注冊使用) |
- | QuickTime Streaming Server (RTSP) |
| 7070 | UDP | RTSP 備用 | - | QuickTime Streaming Server |
| 7777 | TCP | iChat 服務器文件傳輸代理(未注冊使用) | - | - |
| 8000-8999 | TCP | - | - | Web 服務、iTunes 廣播流 |
| 8005 | TCP | Tomcat 遠程關閉 | - | - |
| 8008 | TCP | iCal 服務 | - | Mac OS X Server v10.5 及更高版本 |
| 8080 | TCP | Apache 的備用端口Web 服務 | - | - |
| 8085-8087 | TCP | Wiki 服務 | - | Mac OS X Server v10.5 及更高版本 |
| 8088 | TCP | “軟件更新”服務 | - | Mac OS X Server v10.4 及更高版本 |
| 8089 | TCP | Web 電子郵件規(guī)則 | - | Mac OS X Server v10.6 及更高版本 |
| 8096 | TCP | Web 密碼重設 | - | Mac OS X Server v10.6.3 及更高版本 |
| 8170 | TCP | HTTPS(Web 服務/網(wǎng)站) | - |
Podcast Capture/Podcast CLI |
| 8171 | TCP | HTTP(Web 服務/網(wǎng)站) | - |
Podcast Capture/Podcast CLI |
| 8175 | TCP | Pcast 隧道 | - | pcastagentd(用于控制操作、攝像頭等) |
| 8443 | TCP | iCal 服務 (SSL) | - | Mac OS X Server v10.5 及更高版本 |
| 8800 | TCP | 地址簿服務 | - | Mac OS X Server v10.6 及更高版本 |
| 8843 | TCP | 地址簿服務 (SSL) | - | Mac OS X Server v10.6 及更高版本 |
| 8821 | TCP | Stored(存儲服務器以與服務器進行通信) | - | Final Cut Server |
| 8891 | TCP | ldsd(數(shù)據(jù)傳輸) | - | Final Cut Server |
| 9006、8080、8443 | - | Tomcat Standalone 和 JBOSS (J2EE) 的 HTTP 和 HTTPS 端口 | - | - |
| 11211 | memcached(未注冊) | iCal 服務器 | ||
| 16080 | TCP | - | - | 使用性能緩存的 Web 服務 |
| 16384-16403 | UDP | 實時傳輸協(xié)議(RTP)、實時控制協(xié)議(RTCP) | - | iChat AV(音頻 RTP、RTCP;視頻 RTP、RTCP) |
| 16384-16387 | UDP | 實時傳輸協(xié)議(RTP)、實時控制協(xié)議(RTCP) | - | FaceTime、Game Center |
| 16393-16402 | UDP | 實時傳輸協(xié)議(RTP)、實時控制協(xié)議(RTCP) | - | FaceTime、Game Center |
| 16403-16472 | UDP | 實時傳輸協(xié)議(RTP)、實時控制協(xié)議(RTCP) | Game Center | |
| 24000-24999 | TCP | - | - | 使用性能緩存的 Web 服務 |
| 42000-42999 | TCP | - | - | iTunes 廣播流 |
| 50003 | - | FileMaker 服務器服務 | - | - |
| 50006 | - | FileMaker 幫助工具服務 | - | - |
備注
標簽: 雜談 | 分類: iPhone開發(fā) |