getservbyname()函数与getservbyport()函数
getservbyname()函數(shù)與getserbyport()函數(shù)都是用來(lái)獲取服務(wù)的信息。該信息用servent結(jié)構(gòu)表示。
1 servent結(jié)構(gòu)
servent結(jié)構(gòu)的定義為
typedef struct servent {char *s_name; char **s_aliases} SERVENT, *PSERVENT, *LPSERVENT;其中,變量s_name指向服務(wù)名,s_aliases保存了指向服務(wù)別名的指針。
2 getservbyname()函數(shù)
getservbyname()函數(shù)的作用是通過(guò)服務(wù)名來(lái)獲取服務(wù)的信息。該函數(shù)的格式為
servent * getservbyname( const char *name, const char *proto );其中,參數(shù)name指向了服務(wù)名;proto指向了協(xié)議類型。如果成功執(zhí)行,getservbyname()函數(shù)返回保存了服務(wù)信息的指針。
servent* pServent_name;pServent_name = getservbyname("domain", NULL);其中,參數(shù)“domain”指定了服務(wù)名,NULL表示返回獲取到的第一個(gè)服務(wù)信息。此時(shí)pServent_name指向的獲取到的服務(wù)信息。
3 getservbyport()函數(shù)
getservbyport()函數(shù)的作用是通過(guò)服務(wù)的端口來(lái)獲取服務(wù)的信息。該函數(shù)的格式為
servent * getservbyport( int port, const char *proto );其中,參數(shù)port是服務(wù)對(duì)應(yīng)的端口號(hào),需要注意的是該端口是網(wǎng)絡(luò)字節(jié)序格式;proto指定了服務(wù)的協(xié)議類型。如果成功執(zhí)行,getservbyport()函數(shù)返回保存了服務(wù)信息的指針。
servent?*pServent_port;pServent_port = getservbyport(htons(13568), "tcp");其中,13568是服務(wù)對(duì)應(yīng)的端口號(hào),“tcp”是服務(wù)的協(xié)議類型。獲取到的服務(wù)信息就保存在pServent_port指定的地址中。
4 所需頭文件和庫(kù)文件
需要注意的是,使用getservbyname()函數(shù)與getserbyport()函數(shù)時(shí),需要指定其所需的頭文件和庫(kù)文件。
#include?<winsock.h>#pragma?comment(lib, "Ws2_32.lib")?
總結(jié)
以上是生活随笔為你收集整理的getservbyname()函数与getservbyport()函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 世界十大流行编程语言
- 下一篇: 真机连接虚拟机教程