- purge
最近稍微學習了一點 Objective-C ,做筆記和做編碼練習都是鞏固學習的好方法。整理記錄腦子里的新知識有助于理清思路,發現知識盲點以及錯誤的理解。
Objective-C 和 C++ 同樣從兼容 C 語言開始,以給 C 語言增加面向對象為初衷,他們的出現的時間都很類似(1983 年左右)。但面向對象編程的源頭卻不同:C++ 受 Simula 和 Ada 的影響比較多,而 Objective-C 的相關思想源至 Smalltalk ,最終的結果是他們在對象模型上有不小的差異。
以我這些天粗淺的了解,Objective-C 似乎比 C++ 更強調類型的動態性,而犧牲了一些執行性能。不過這些犧牲,由于模型清晰,可以在今天,由更先進的編譯技術來彌補了。
我對 C++ 的認知比 Objective-C 要多的多,所以對 C++ 開發中會遇到的問題的了解也多的多。在學習 Objective-C 的過程中,我發現很多地方都可以填上曾經在 C++ 開發中遇到的問題。當然,Objective-C 一定也有它自己的坑,只是我才剛開始,沒有踩到過罷了。
ObjC 的類方法調用的形式,更接近于向對象發送消息。語法寫作:
[obj message]
如果方法帶有參數,那么就寫作
[obj param:value]
方法和名稱和參數的名稱是一體的,參數決定了方法是什么。如果有多個參數,那么寫作:
[obj param1:value1 param2:value2]
注意,如果一個類有兩個方法,一個有一個參數,一個有兩個參數。即使兩個參數的版本中有一個參數名稱和單個參數版本的相同,它們也是兩個不同的方法。ObjC 不支持默認參數的語法。
C++ 調用對象的方法就更接近于 C 的函數調用。兩相比較,可以發現 ObjC 的語法讓代碼可讀性更強。你可以很容易的理解參數的用途,也不怕方法參數過多時,一串參數寫漏或寫錯次序了。
和 C++ 一樣,ObjC 的類聲明和實現是分離的。但做的比 C++ 更徹底。ObjC 不能在聲明的代碼段中寫 inline 函數。這看起來犧牲了一些運行性能,但當實現部分更好的分離。作為補充,ObjC 有 @property ,可以幫助程序員簡化實現,也可以讓編譯器生成更好的代碼。
聲明一個類寫成這樣:
@interface class : baseclass { type a; } - (void) method; - (void) messge: (type) param; + (id) create ; @end
ObjC 利用了 C 語言中沒有使用的符號 @ 來擴展 C 的語法,而不是用 C++ 里增加關鍵字的方式。這或許是一個對語言擴展更簡單的做法,而不用考慮兼容性。C++ 就得精心挑選新增加的關鍵字,盡量回避那些已有代碼中高頻出現的單詞。
類的數據段和方法是分離的。數據描述放在 {} 中,方法寫在其后,在 @end 之前。
"-" 開頭的方法是實例方法,也就是 C++ 中的成員方法。成員方法中可以通過 self 取到實例指針,也就是 C++ 中的 this 指針。
同樣,ObjC 也支持類方法,也就是 C++ 中的 static 成員方法。通常是用來構造實例。聲明方法是在方法名前寫一個 + 號。
和 C++ 不同,ObjC 是有類對象的。類對象里有超類指針、類名、類方法列表指針,還有類對象的字節大小等元信息。而 C++ 中是用 RTTI 類實現不完全的類似功能的。
調用類方法和調用實例方法在語法上沒有什么不同。類名就是類對象的名字。
ObjC 不支持多繼承,沒有私有、公開這些修飾符。
ObjC 的類方法實現必須寫在同一個源文件里。不像 C++ 有 :: 操作符,ObjC 在實現方法時不寫類的名字,而是把所有實現都寫在 @implementation class ... @end 之間。訪問基類,也可以方便的使用 super 關鍵字。
那么,如果一個類的方法太多,不適合寫在同一個源文件中怎么辦?
ObjC 提供了 category 這個概念。
可以通過 category 為一個類添加一些方法。category 和繼承是不同的,不能為類添加新的成員變量,所以它不會改變類對象的內存布局。添加了方法的類還是原來那個類。
category 的語法是這樣的:
@interface class (category) - newmethod; @end
這樣,就給 class 類添加了一個方法 newmethod ,并歸類在 category 下。
和 C++ 不同,ObjC 的方法更具動態性。你可以在運行時任意調用一個對象的方法,而不用管它是否存在。ObjC 支持 id 這個類型。 id 其實就是對象指針,任何類型的對象都可以被 id 引用,并可以方便的向其發送消息(方法調用)。如果方法不存在,會拋出運行時錯誤。
向一個指定類型發送一個不存在的消息,會得到一個編譯期警告,而不是編譯錯誤。當然,我們不能隨便忽略編譯期警告,如果我們清楚的知道運行期這個對象可以處理這個消息,那么可以給類加一個 category 但不必實現它。這樣,編譯器就能了解新的方法了。
利用 category 可以方便的一個龐大的類拆分成獨立的模塊。在 C++ 中,比較接近的概念是 friend ,不過 friend 不易被優雅的使用。
既然方法可以被運行期檢查,那么方法本身在 ObjC 中也可以被當成一種類型來處理。比較接近的 C++ 中的概念是 成員方法指針。回顧學習 C++ 的經歷就能回憶起當年使用 ::* 或是 ->* 的頭痛經歷。ObjC 中的方法可以運行期綁定, @selector(method:) 的語法也簡單的多。
在 NSObject 中就提供了一個叫 respondsToSelector: 的方法,接受一個 selector 用來檢查自己是否可以接受這個消息。
ObjC 也提供了類似 Java 的 interface 或是 C++ 的純虛類的東西,在 ObjC 中被稱為 @protocol 。
@protocol 可以看成是一種沒有數據成員的虛類。一個實際的類可以聲明自己實現了某些協議,語法是
@interface class : base <protocol> { // variables } // methods @end
和繼承不同,一個類可以聲明多個協議。然后在 @implementation 中必須一一實現它們。
如上所述,ObjC 已經做到了運行期的方法綁定,所以 @protocol 只是做了更嚴格的編譯檢查。在新版的 ObjC 2.0 中,追加了 @optional 和 @required 用來描述那些方法的實現是可選的,哪些必須實現。
ObjC 的基礎庫比 C++ 更完整,標準化要好的多,也和語言結合的更緊密。
比如 NSString 是一個基礎類,用于處理字符串。同時,語言也提供 @"string" 的語法方便的生成 NSString 對象。
ObjC 保留了 C 中的 printf 式的字符串操作形式,對比 C++ 重載移位操作符的形式,我想要更清爽一些。
對于 ObjC 對象,使用 %@ 來表示。給對象增加 description 方法就可以讓處理函數知道該如何處理這個對象的 %@ 行為。
蘋果系統開機時會發出“咣”的一聲,這個音效本身沒有什么美感可言,在安靜的地方比如圖書館開機時更容易引起尷尬。然而蘋果系統本身并未提供一個功能禁用這個音效。
我寫了這樣一個腳本,可以禁用Mac OS開機音效。其原理是,開機音效聲音的大小取決于關機前系統聲音的大小,如果關機前是靜音的,則開機音效也被靜音。因此在關機之前執行一個腳本,將系統設為靜音,開機后再執行一個腳本,將靜音狀態取消,即可實現完美去除開機音效。
除此方法外,還有一些軟件可以禁用開機音效,但這些軟件通常是通過修改nvram的方式實現的,具有一定的危險性,而且兼容性也得不到保障,比如升級到Mac OX X Lion后這些軟件就都失效了。而這段腳本則可以在10.6 10.7等系統上通用。
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,
這就是已經下載的文件。
2、分別查看屬性,看是否是最新版本(Mac OS X 10.6 Core Library (v409.200.0)),如果不是從http://developer.apple.com/rss/com.apple.adc.documentation.AppleSnowLeopard.atom下載最新版本。
3、提升當前用戶讀寫權限。
以上三步就能搞定,如果問題,繼續補充討論。
類似問題一:Xcode4出現“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、提升訪問權限,不然會重新下載并安裝失敗。
$ $ sudo chown -R -P _devdocs /Developer/Documentation/DocSets/com.apple.adc.documentation.AppleSnowLeopard.CoreReference.docset
類似問題二:Xcode4出現“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執行命令的時候注意把xcode關掉.或者執行完畢重啟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
根據得到的版本號和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內置的Safari程序,點URL條,鍵盤和URL條中間部分變灰顯示,然后隨著URL的輸入,在中間以UITableView顯示搜索的結果。好多iPhone程序也都有類似的效果。這是如何實現的呢?下面說一下我的實現方法。
首先注冊鍵盤事件UIKeyboardWillShowNotification的監聽 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; 程序在點擊textField或searchBar,鍵盤顯示之前,會發送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的區域,因為鍵盤始終是在上面的,所以UIView *maskView下面可以大些,主要不要蓋住上面的searchBar之類的內容。要顯示結果的UITableView的大小則要根據鍵盤的大小算出確切的中間區域 ... //將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是用來跟蹤鍵盤是否已經顯示的布爾變量。如果有多個文本域,之間切換時雖然鍵盤不變,仍會生成UIKeyboardWillShowNotification。通過變量keyboardShown跟蹤鍵盤是不是真的隱藏,可以保證這個效果只執行一次。 當searchBar有輸入時,可參考官方例子TableSearch,把UITableView加到上面的maskView上。 當鍵盤隱藏時,把UITableView移掉,將maskView的alpha屬性設為0,即可隱藏maskView。 實現方法可以更靈活,大體思路應該就是這樣吧。 轉自:http://hi.baidu.com/programme/blog/item/6f8e4c08359015920b7b8249.html
|
自從升級lion后內存使用過大一直是一個很頭疼的問題,一個不小心4G內存就只剩幾百M了。
買了一根4G的內存條替換以前的2G,這樣就有6G內存了。
本來以為沒什么問題了,但是機器跑久了,6G內存的可用空間還是會用的所剩無幾。
已使用的內存分為3種,聯動、活躍和非活躍的,具體介紹見這里。
簡單的說,OS X的內存使用情況分為wired、active、inactive、free四種。
wired是系統核心占用的,永遠不會從系統物理內存種驅除。
active表示這些內存數據正在使用中,或者剛被使用過。
inactive表示這些內存中的數據是有效的,但是最近沒有被使用。
free, 表示這些內存中的數據是無效的,這些空間可以隨時被程序使用。
當free memory低于某個值(由實際內存大小決定),系統則會按照一定順序使用inactive的資源。將inactive的資源通過一定原則釋放成free。供程序使用。如果active的內存資源一段時間沒有被使用,也會被暫時改為inactive狀態。同樣,當需要時這部分inactive內存資源也會釋放成free供程序使用。那么被釋放的部分就會分配到磁盤虛擬的內存中。(這也是為什么當磁盤可用空間低于10G的時候會影響系統速度的原因)。
所以,當系統里有少量的free memory和大量的inactive memory,是正常現象。只要系統或程序需要時,系統就會將其轉換并使用。但是,如果系統的free memory和inactive memory都很小,而active memory很大,則說明你的內存不夠了。
以上說明OS X對于內存的管理不需要我們自己來操心。一切都由系統自己動來平衡。
而WIN系統為了兼容不規范的程序,系統允許程序長時間或一直占用內存不釋放。所以需要常常重啟。
如果你確實需要手動的清理inactive memory,那么,可以在終端執行以下命令。
1.添加QuartzCore.framework
2.實現代碼
轉自:http://gekie.iteye.com/blog/1088427
這幾天把玩新入手的iPod Touch 4,郁悶的是在Win7 64位版本下iTune一直表現不佳,第一次安裝后怎么都好用,第二次運行就會報錯——未找到QuickTime,iTune運行需要QuickTime等等,卸載重裝問題依舊。在網上發現如下解決辦法一蹴而就,終于開心的同步了。
1、在Program Files下的QuickTime目錄下找到QTCF.dll文件
2、復制到windows\system和windows\system32兩個目錄下。
問題解決~
轉自:http://marguin.info/article/423.htm
相關鏈接:http://pitaka.blogbus.com/logs/83643233.html
服務或協議名稱列中列出了已注冊到 Internet 編號分配機構 (http://www.iana.org/) 的服務(除了標注為“未注冊使用”的服務之外)。使用這些服務或協議的 Apple 產品的名稱顯示在“使用者/其他信息”列中。
RFC 列中列出了定義特定服務或協議的“征求意見”文稿(可用于參考)的編號。RFC 文稿由 RFC Editor (http://www.rfc-editor.org/) 維護。如果多個 RFC 定義一個協議,則此處可能僅列出其中的一個 RFC。
本文將定期更新,提供發布時可獲得的信息。本文稿用作快速參考,并非能夠提供詳盡信息的文件。該表中列出的 Apple 產品是最常用的示例,并非詳盡的列表。有關更多信息,請查看表格下面的“備注”。
提示: 有些服務可能使用兩個或多個端口。建議在此列表中發現某產品第一次出現后,繼續搜索該名稱 (Command-F),然后重復操作 (Command-G),找到出現該產品的所有地方。例如,VPN 服務可能使用多達四個不同的端口:500、1701、1723 和 4500。
提示: 有些防火墻允許選擇性配置擁有相同端口號的 UDP 或 TCP 端口,因此請務必注意要配置的端口類型。例如,NFS 可能使用 TCP 2049 端口或 UDP 2049 端口,也可能同時使用兩者。如果防火墻不允許指定端口類型,對一個端口所作更改可能會同時作用于二者。
端口 | TCP 或 UDP | 服務或協議名稱 | RFC | 使用者/其他信息 |
7 | TCP/UDP | Echo | 792 | - |
20 | TCP | 文件傳輸協議(FTP) | 959 | - |
21 | TCP | FTP 控制 | 959 | - |
22 | TCP | Secure Shell (SSH) | 4250 - 4254 | - |
23 | TCP | Telnet | 854 | - |
25 | TCP | 簡單郵件傳輸協議(SMTP) | 5321 |
Mail(用于發送電子郵件);MobileMe Mail(發送) |
53 | TCP/UDP | 域名系統(DNS) | 1034 | MacDNS、FaceTime |
67 | UDP | Bootstrap 協議服務器(BootP、bootps) | 951 | NetBoot via DHCP |
68 | UDP | Bootstrap 協議客戶端(bootpc) | 951 | NetBoot via DHCP |
69 | UDP | 簡單文件傳輸協議(TFTP) | 1350 | - |
79 | TCP | Finger | 1288 | - |
80 | TCP | 超文本傳輸協議(HTTP) | 2616 | 萬 維網、MobileMe、Sherlock、QuickTime 安裝程序、iTunes Store 和廣播、軟件更新、RAID 管理、備份、iCal 日歷發布、iWeb、MobileMe 網絡畫廊發布、WebDAV (iDisk)、Final Cut Server、AirTunes/AirPlay |
88 | TCP | Kerberos | 4120 | - |
106 | TCP | 密碼服務器 (未注冊使用) |
- | Mac OS X Server 密碼服務器 |
110 | TCP | 郵局協議(POP3) 身份驗證郵局協議(APOP) |
1939 | Mail(用于接收電子郵件) |
111 | TCP/UDP | 遠程過程調用(RPC) | 1057、1831 | 端口映射器 (sunrpc) |
113 | TCP | 標識協議 | 1413 | - |
115 | TCP | 安全文件傳輸程序(SFTP) | 913 | 注:某些機構會在此端口引用“簡單文件傳輸協議”或“安全文件傳輸協議”。 |
119 | TCP | 網絡新聞傳輸協議(NNTP) | 3977 | 由讀取新聞組的應用程序使用。 |
123 | TCP/UDP | 網絡時間協議(NTP) | 1305 | “日期與時間”偏好設置。用于網絡時間服務器,AppleTV 網絡時間服務器同步 |
137 | UDP | Windows Internet 命名服務(WINS) | - | - |
138 | UDP | NETBIOS 數據報服務 | - | Windows 數據報服務、Windows 網上鄰居 |
139 | TCP | 服務器信息塊(SMB) | - | 由 Microsoft Windows 文件和打印服務(如 Mac OS X 中的 Windows 共享)使用。 |
143 | TCP | Internet 消息訪問協議(IMAP) | 3501 | Mail(用于接收電子郵件);MobileMe Mail (IMAP) |
161 | UDP | 簡單網絡管理協議(SNMP) | 1157 | - |
192 | UDP | - | - | AirPort 基站 PPP 狀態或發現(特定配置)、AirPort 管理實用程序、AirPort Express 助理 |
311 | TCP | Server Admin、Workgroup Manager、Server Monitor、Xsan Admin | - | 遠程服務器管理 |
389 | TCP | 輕量級目錄訪問協議(LDAP) | 4511 | 由查找地址的應用程序(如 Mail 和地址簿)使用。 |
427 | TCP/UDP | Service Location Protocol (SLP) | 2608 | 網絡瀏覽器 |
443 | TCP | 安全套接字層(SSL 或“HTTPS”) | - | 受保護的網站、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) | - | 用于通過網絡打印機打印,Mac OS X 中的打印機共享。 |
532 | TCP | 網絡新聞 | - | - |
548 | TCP | 通過 TCP 的 Apple 檔案分享協議(AFP) | - | AppleShare、個人文件共享、Apple 文件服務 |
554 | TCP/UDP | 實時流協議(RTSP) | 2326 | QuickTime Streaming Server (QTSS)、流媒體播放器、AirTunes/AirPlay |
587 | TCP | 用于 Mail 的信息提交(經過身份驗證的 SMTP) | 4409 | Mail(用于發送郵件)、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 打印協議(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 靜態端口 | - | - |
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 故障轉移 | - | - |
1701 | UDP | L2TP | - | Mac OS X Server VPN 服務 |
1723 | TCP | PPTP | - | Mac OS X Server VPN 服務 |
2049 | TCP/UDP | 網絡文件系統(NFS)(第 3 版) | 1094 | - |
2236 | TCP | Macintosh Manager(未注冊使用) | - | Macintosh Manager |
2336 | TCP | 可移植主目錄 | - | |
3004 | TCP | iSync | - | - |
3031 | TCP/UDP | 遠程 AppleEvent | - | 程序鏈接、遠程 Apple 事件 |
3283 | TCP/UDP | 網絡助理 | - | 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 | 數字音頻訪問協議(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 會互相排斥;將會優先使用 MobileMe。 |
49152-65535 | TCP | Xsan | - | Xsan 文件系統存取 |
5003 | TCP | FileMaker - 名稱綁定和傳輸 | - | - |
5009 | TCP | (未注冊使用) | - | AirPort 管理實用程序、AirPort Express 助理 |
5060 | UDP | 會話啟動協議(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 數據庫 | - | - |
5678 | UDP | SNATMAP 服務器 | - | 端 口 5678 上的 SNATMAP 服務用于確定主機的外部 Internet 地址,以便 iChat 用戶之間的連接可在網絡地址轉換(NAT)之后正常使用。SNATMAP 服務僅將已連接到它的 Internet 地址告知客戶端。此服務在 Apple 服務器上運行,但不會將個人信息發送給 Apple。在使用了特定 iChat AV 功能的情況下,將與此服務建立聯系。阻止此服務可能會導致與使用 NAT 的網絡上的主機之間的 iChat AV 連接出現問題。 |
5897-5898 | UDP | (未注冊使用) | - | xrdiags |
5900 | TCP | 虛擬網絡計算(VNC) (未注冊使用) |
- | Apple Remote Desktop 2.0 或更高版本(監視/控制功能) 屏幕共享(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(未注冊使用) 自動路由器配置協議(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 電子郵件規則 | - | Mac OS X Server v10.6 及更高版本 |
8096 | TCP | Web 密碼重設 | - | Mac OS X Server v10.6.3 及更高版本 |
8170 | TCP | HTTPS(Web 服務/網站) | - |
Podcast Capture/Podcast CLI |
8171 | TCP | HTTP(Web 服務/網站) | - |
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(數據傳輸) | - | Final Cut Server |
9006、8080、8443 | - | Tomcat Standalone 和 JBOSS (J2EE) 的 HTTP 和 HTTPS 端口 | - | - |
11211 | memcached(未注冊) | iCal 服務器 | ||
16080 | TCP | - | - | 使用性能緩存的 Web 服務 |
16384-16403 | UDP | 實時傳輸協議(RTP)、實時控制協議(RTCP) | - | iChat AV(音頻 RTP、RTCP;視頻 RTP、RTCP) |
16384-16387 | UDP | 實時傳輸協議(RTP)、實時控制協議(RTCP) | - | FaceTime、Game Center |
16393-16402 | UDP | 實時傳輸協議(RTP)、實時控制協議(RTCP) | - | FaceTime、Game Center |
16403-16472 | UDP | 實時傳輸協議(RTP)、實時控制協議(RTCP) | Game Center | |
24000-24999 | TCP | - | - | 使用性能緩存的 Web 服務 |
42000-42999 | TCP | - | - | iTunes 廣播流 |
50003 | - | FileMaker 服務器服務 | - | - |
50006 | - | FileMaker 幫助工具服務 | - | - |
備注