名字端口号的映射存放在/etc/services配置文件中,那么之后,尽管端口号发生改变,我们仅仅需要修改/etc/services配置文件中某个服务对应的端口号即可(不需要重新编译程序)。


使用 服务名+协议名 或 端口号+协议名 得到 struct servent 结构体(某个服务的详细信息),先介绍该结构体:

先介绍 struct servent 结构体

struct servent{char*   s_name;     服务名char**  s_aliases;  别名列表int     s_port;     端口号(网络字节序)char*   s_proto;    使用的协议
}

getservbyname:使用 servname+protoname ,得到 struct servent

struct servent* getservbyname(const char* servname, const char* protoname);

参数:servname服务名; protoname协议,有TCP、UDP等。
返回值:若成功,返回非空指针;失败,返回NULL
      struct servent* sptr = getservbyname(“domain”, “udp”);
      struct servent* sptr = getservbyname(“FTP”, NULL);

getservbyport:使用 端口号+protoname ,得到 struct servent

struct servent* getservbyport(int port, const char* protoname);

参数:port必须是网络字节序
      struct servent* sptr = getservbyport(htons(53), “udp”);
      struct servent* sptr = getservbyport(htons(21), “tcp”);

getservbyname、getservbyport相关推荐

  1. UNP编程:31---名字与地址转换之(服务解析函数:getservbyname()、getservbyport()、struct  servent)

    一.服务与地址的关系 一个端口代表一个服务(服务进程),因此可以使用服务名来代替端口的使用 像主机一样,服务也通常靠名字来认知 如果我们在程序代码中通过其名字而不是其端口号来指代一个服务,而且从名字到 ...

  2. (域名、主机名、服务名、端口号)名字与地址的转换 (gethostbyname、getservbyname、getaddrinfo、getnameinfo等)

    转载地址 本章讲述在名字和数值地址间进行转换的函数:gethostbyname和gethostbyaddr在主机名字与IP地址间进行转换,getservbyname和getservbyport在服务器 ...

  3. 名字与地址转换getservbyname 与 getservbyport函数

    名字与地址转换getservbyname 与 getservbyport函数 服务也通常靠名字来标志,getservbyname函数用于根据给定名字查找相应服务. #include struct    ...

  4. 网络编程学习笔记(getservbyname和getservbyport函数)

    通过服务器的名字而不是服务器端口号来认知它,而且如果从主机到端口号的映射包含在一个文件中(一般是/etc/services),则如果端口号改变,我们所需做的所有改动就是改动文件/etc/service ...

  5. getservbyname和getservbyport

    getservbyname函数和getservbyport函数其实也挺简单的.来看看百度百科是怎么描述他们的.getservbyname()返回与给定服务名对应的包含名字和服务号信息的servent结 ...

  6. Linux编程技术总结

    前言 所谓Linux编程技术就是在Linux操作系统环境下进行软件开发时所使用的各种编程技术. 一 常见的Linux系统发行版 在介绍常见的 Linux 系统版本之前,首先需要区分 Linux 系统内 ...

  7. Unix网络编程学习笔记之第11章 名字与地址转换

    一. 域名系统(DNS) 1. 简介 DNS主要用于主机名和IP地址之间的映射. 主机名可以是简单的名字ljm,也可以是全限定域名ljm.localdomainbaidu.com等. 2.资源记录 D ...

  8. 第14章 多线程编程

    14.1 Linux线程概述 14.1.1 线程模型 线程是CPU调度的最小单位.线程可分为内核线程和用户线程.内核线程:运行在内核空间,由内核来调度:用户线程:运行在用户空间,由线程库来调度.当进程 ...

  9. 《Unix网络编程》卷一(简介TCP/IP、基础套接字编程)

    通常说函数返回某个错误值,实际上是函数返回值为-1,而全局变量errno被置为指定的常值(即称函数返回这个错误值). exit终止进程,Unix在一个进程终止时总是关闭该进程所有打开的描述符. TCP ...

最新文章

  1. qt5.10 for android 使用webview时qml 与html 中js的相互访问
  2. Java网络编程2---Socket-TCP编程
  3. 编程语言对比 异常处理
  4. 65lbc184应用电路原理_75lbc184应用电路
  5. golang微服务框架对比_最强开源微服务框架,全网独家整理
  6. IT讲师韩顺平:我为什么辞去百万年薪,自己创业?
  7. .dat文件三维点云可视化
  8. word只能以安全模式打开
  9. php model module,Yii2用Gii自动生成Module+Model+CRUD
  10. 为什么有时候我们在测试ESP32或ESP8266模块使用 QOUT/QIO 下载固件,程序无法正常运行? (DIO/DOUT 正常)另外ESP32功耗怎么校验?
  11. 审查元素为什么看不见代码_代码审查:我们为什么这样做?
  12. 【NodeJs-5天学习】第三天实战篇③ ——基于MQTT的环境温度检测
  13. 报错Failure executing javac, but could not parse the error原因分析
  14. mysql 时间计算器
  15. “微信之父”张小龙年薪3亿,曾独自一人完成7万行代码
  16. 高精度除法(精确到小数点后N位)
  17. 如何一键导出PPT中的所有图片
  18. C语言中数组的使用详解
  19. 腾讯QQ2007II Beta2传美版v2.2[2007年11月26日更新]
  20. JVM调优-有调优我不用,我就耗着,哎,就是玩儿

热门文章

  1. 2018 ACM/ICPC 沈阳站 J How Much Memory Your Code Is Using?
  2. 电商互动消息如何进行架构演进?
  3. 电脑pdf怎么转换成excel表格呢?
  4. Python 不用selenium 带你高效爬取京东商品评论
  5. Photoshop之旅游名片制作(保姆级教程)
  6. 北大igem生物计算机,北京大学iGEM团队在2018国际大赛中再获佳绩
  7. 家里的 Mac 电脑远程控制公司的 Win10 电脑,疫情也不影响办公。
  8. 中兴c300 OLT配置SFU
  9. Legacy Build System
  10. 联想安装Ubuntu16.04LTS(双系统)知识点汇总(六个小时才下好