addr.set (ACE_TEXT("HAStatus"), ACE_LOCALHOST);
這句中的HAStatus是什么含義?
網絡編程世界中,有一些服務是"眾所周知"(well-known)的。
如:
echo 7/tcp
echo 7/udp
discard 9/tcp sink null
discard 9/udp sink null
systat 11/tcp users #Active users
systat 11/udp users #Active users
daytime 13/tcp
daytime 13/udp
這些服務的名稱和端口同樣是約定一致的。
它們定義在 c:\windows\system32\drivers\etc\services 文件中。
services是一個文本文件,你可以用notepad打開它。
需要把HAStatus指定一個端口號和協議,加在這個文件后面,如
HAStatus 2008/tcp # Home Automation
這樣,ACE_INET_Addr 可以讀取這個以名稱代表的服務的端口號。
查看一下ACE_INET_Addr 的實現源代碼,它會通過一個系統調用(或api)通過名稱獲取端口號的。