getservbyname、getservbyport
????名字和端口號(hào)的映射存放在/etc/services配置文件中,那么之后,盡管端口號(hào)發(fā)生改變,我們僅僅需要修改/etc/services配置文件中某個(gè)服務(wù)對(duì)應(yīng)的端口號(hào)即可(不需要重新編譯程序)。
使用 服務(wù)名+協(xié)議名 或 端口號(hào)+協(xié)議名 得到 struct servent 結(jié)構(gòu)體(某個(gè)服務(wù)的詳細(xì)信息),先介紹該結(jié)構(gòu)體:
先介紹 struct servent 結(jié)構(gòu)體
struct servent{char* s_name; 服務(wù)名char** s_aliases; 別名列表int s_port; 端口號(hào)(網(wǎng)絡(luò)字節(jié)序)char* s_proto; 使用的協(xié)議 }① getservbyname:使用 servname+protoname ,得到 struct servent
struct servent* getservbyname(const char* servname, const char* protoname);參數(shù):servname服務(wù)名; protoname協(xié)議,有TCP、UDP等。
返回值:若成功,返回非空指針;失敗,返回NULL
??????struct servent* sptr = getservbyname(“domain”, “udp”);
??????struct servent* sptr = getservbyname(“FTP”, NULL);
② getservbyport:使用 端口號(hào)+protoname ,得到 struct servent
struct servent* getservbyport(int port, const char* protoname);參數(shù):port必須是網(wǎng)絡(luò)字節(jié)序
??????struct servent* sptr = getservbyport(htons(53), “udp”);
??????struct servent* sptr = getservbyport(htons(21), “tcp”);
總結(jié)
以上是生活随笔為你收集整理的getservbyname、getservbyport的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 锋云数据服务器管理文件说明书,云端数据库
- 下一篇: ue4蓝图碰撞检测的类型_UE4碰撞规则