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)通过名称获取端口号的。