日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

getservbyname()函数与getservbyport()函数

發布時間:2023/12/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 getservbyname()函数与getservbyport()函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

getservbyname()函數與getserbyport()函數都是用來獲取服務的信息。該信息用servent結構表示。

1 servent結構

servent結構的定義為

typedef struct servent {char *s_name; char **s_aliases} SERVENT, *PSERVENT, *LPSERVENT;

其中,變量s_name指向服務名,s_aliases保存了指向服務別名的指針。

2 getservbyname()函數

getservbyname()函數的作用是通過服務名來獲取服務的信息。該函數的格式為

servent * getservbyname( const char *name, const char *proto );

其中,參數name指向了服務名;proto指向了協議類型。如果成功執行,getservbyname()函數返回保存了服務信息的指針。

servent* pServent_name;pServent_name = getservbyname("domain", NULL);

其中,參數“domain”指定了服務名,NULL表示返回獲取到的第一個服務信息。此時pServent_name指向的獲取到的服務信息。

3 getservbyport()函數

getservbyport()函數的作用是通過服務的端口來獲取服務的信息。該函數的格式為

servent * getservbyport( int port, const char *proto );

其中,參數port是服務對應的端口號,需要注意的是該端口是網絡字節序格式;proto指定了服務的協議類型。如果成功執行,getservbyport()函數返回保存了服務信息的指針。

servent?*pServent_port;pServent_port = getservbyport(htons(13568), "tcp");

其中,13568是服務對應的端口號,“tcp”是服務的協議類型。獲取到的服務信息就保存在pServent_port指定的地址中。

4 所需頭文件和庫文件

需要注意的是,使用getservbyname()函數與getserbyport()函數時,需要指定其所需的頭文件和庫文件。

#include?<winsock.h>#pragma?comment(lib, "Ws2_32.lib")

?

總結

以上是生活随笔為你收集整理的getservbyname()函数与getservbyport()函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。