安装好FreeBSD,继续编译剩下的代码。

1、链接
http://www.kohala.com/start/tcpipiv1.tar.Z

2、解压缩

3、makefile需要修改

# Following line for SVR4, Solaris 2.x
#LIBS   = /usr/ucblib/libucb.a -lsocket -lnsl 注释掉# Following line for 4.4BSD, BSD/386, SunOS 4.x, AIX 3.2.2
LIBS    = #取消注释

4、sock下的strerror.c文件需要修改

extern char  *sys_errlist[];
extern int  sys_nerr;

改为

extern const char    * const sys_errlist[];
extern const int    sys_nerr;

然后就可以编译了。

Openindiana

makefile需要修改

# Following line for SVR4, Solaris 2.x
#LIBS   = /usr/ucblib/libucb.a -lsocket -lnsl 注释掉# Following line for 4.4BSD, BSD/386, SunOS 4.x, AIX 3.2.2
LIBS    = -lsocket -lnsl

但是socket文件夹下会有问题,提示:

error: structure has no member named `msg_control'
error: structure has no member named `msg_controllen'
error: structure has no member named `msg_flags'

原因如下:

4.3BSD

不幸,对于4.3BSD以及在其基础上构造的SunOS和Ultrix,以及从4.3BSD Reno开始的后续版本我们必须提供不同的实现。为了交换文件描述符,调用sendmsg(2)和recvmsg(2)函数。这两个函数的参数中都有一个指向msghdr的指针,该结构包含了所有关于要发送和接收消息的信息。该结构定义在<sys/socket.h> 头文件中,在BSD4.3之下,其样式是:

strcut msghdr {  caddr_t  msg_name;    可选的地址  int   msg_namelen;    地址长度  struct iovec  msg_iov;     散布/聚集数组  int    msg_iovlen;    在msg_iov数组中的元素数  caddr_t  msg_accrights;    存取权发送/接收到  int    msg_accrightslen;   存取权缓存的长度
}

从4.3BSD Reno开始,更改了msghdr结构的定义。在以前版本中被称之为"存取权" 的最后两个元素改称为"辅助数据"。另外,在该结构结束处增加了一个新成员msg_flags。

strcut msghdr {  caddr_t  msg_name;    可选的地址  int   msg_namelen;    地址长度  struct iovec  msg_iov;     散布/聚集数组  int    msg_iovlen;    在msg_iov数组中的元素数  caddr_t  msg_control;    辅助数据  int    msg-controllen;   辅助数据的长度  int    msg_flags;    接收到消息的标志
}

在CFLAGS一行加上

-D_XOPEN_SOURCE=500 -D__EXTENSIONS__

TCP/IP Illustrated Episode 2相关推荐

  1. TCP/IP Illustrated Episode 3

    这是新的书,TCP/IP详解三卷.由于之前的经验,目前简单说明一下笔记记录方法.首先还是英文版本,复制. 第一卷 复制文字,使用Wireshark查看各类协议,可能部分协议需要使用特殊机器,如果实在不 ...

  2. TCP/IP Illustrated

    Web site: http://www.kohala.com/start/ TCP/IP Illustrated,Volume 1:The Protocols Author: W.Richard S ...

  3. 图灵喜获Stevens名著《TCP/IP Illustrated》影印版权

    图灵再获得培生教育出版集团授权,即将出版<TCP/IP详解>(3卷)的影印版. 此前,图灵在2006年先后出版了<Unix环境高级编程(第2版)>的影印版和翻译版.并于2009 ...

  4. TCP/IP illustrated 阅读笔记(三) IP协议

    1. 什么是IP协议: Internet Protocol,工作在网络层,是TCP/IP协议族中的workhorse协议(意思就是IP是个搬砖的),是一个提供最best-effort(尽最大努力)的无 ...

  5. TCP/IP illustrated 阅读笔记(四) UDP协议和IP分段

    1.      什么是UDP协议 UDP协议,user datagram Protocal,是一个简单的.面向datagram的传输层协议, 特点:可以保存消息边界(message boundarie ...

  6. TCP/IP详解卷1 - wireshark抓包分析

    TCP/IP详解卷1 - 系列文 TCP/IP详解卷1 - 思维导图(1) TCP/IP详解卷1 - wireshark抓包分析 引言 在初学TCP/IP协议时,会觉得协议是一种很抽象的东西,通过wi ...

  7. TCP/IP协议栈之LwIP(六)---网络传输管理之TCP协议

    文章目录 一.TCP协议简介 1.1 正面确认与超时重传 1.2 连接管理与保活机制 1.3 滑动窗口与缓冲机制 1.4 流量控制与拥塞控制 1.5 提高网络利用率的其他机制 二.TCP协议实现 2. ...

  8. TCP/IP之四书五经

    TCP/IP协议是当前广域网和局域网通用的网络协议,因此,基于TCP/IP的编程就格外重要.从应用上来说,现在直接利用C层次Socket API进行TCP/IP编程的人确实越来越少了,各种现成的框架( ...

  9. 《TCP/IP 卷一》笔记、ping和traceroute 的实现思路

    一.TCP协议相关笔记 Normally TCP does not send an ACK the instant it receives data. Instead, it delays the A ...

最新文章

  1. Quick Cocos2dx 初步战斗
  2. 测试人员必学的软件快速测试方法(三)
  3. 编程之美-求数组的子数组之和的最大值方法整理
  4. springboot 1.5.2 集成kafka 简单例子
  5. 委外订单_ERP软件教程:金蝶ERP的委外加工业务流程(一)
  6. 【转】深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第四节 参数传递对堆栈的影响 2
  7. 编程到底该用 Tab 还是 Space?比尔·盖茨也来挑事儿
  8. MyStringTokenize
  9. leetcode刷题之 两数之和
  10. PyGame:Python 游戏编程入门-1
  11. 复制文件并重命名到新的文件夹
  12. 赛事+内容IP齐发力,汽车之家打破Z世代次元壁
  13. 2021年最近的猝死案例有点多!!!(关注我,让你活的更久一点)
  14. vue-router的参数的传递、懒加载以及嵌套路由的使用
  15. 怎样快速生成一个动态二维码?动态个性二维码怎么做?
  16. 怎么把mov格式的视频转换成mp4?
  17. Samy 蠕虫代码
  18. 华南x79主板u盘装系统教程_华南主板win10改win7系统及BIOS设置教程
  19. mezzanine用户扩展/PUBLIC USER ACCOUNTS(一)
  20. sql 数据库创建及建表,

热门文章

  1. nec c语言笔试题,红外NEC编码发射程序_C语言(国外英文资料).doc
  2. 什么软件可以支持视频合并?
  3. 制作多系统U盘(一个U盘两个系统,适用于win)
  4. 【文艺复兴之swing】JOptionPane.showConfirmDialog设置字体大小
  5. 【无标题】 z中国分布式能源行业发展态势及供需前景预测报告2022-2027年
  6. wifi信道12为啥没人用_2.4GWiFi哪个信道最好?13信道有什么特殊的地方吗?
  7. stripes+jersery的web.xml配置
  8. 经典论文之ResNet
  9. Java 实现word pdf在线预览
  10. BLDC有感无刷电动车控制器方案,基于STC12/STM32开发