sys/socket.h这个头文件在XP下怎么找不到?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sys/socket.h这个头文件在XP下怎么找不到?相关的知识,希望对你有一定的参考价值。
参考技术A 因为这是linux的头文件,在windows中用#include <winsock.h>头文件,不同平台头文件不一样sys/socket.h 网络套接字功能在哪里(以及如何)实现?
【中文标题】sys/socket.h 网络套接字功能在哪里(以及如何)实现?【英文标题】:Where(and how) are the sys/socket.h network socket functions implemeneted? 【发布时间】:2013-01-13 19:47:02 【问题描述】:所以我下载并编译了 FreeBSD Sys/Socket.h 头文件,我注意到它包含套接字函数原型但没有实现。 Windows 套接字使用实现这些功能的 DLL,但 Windows 的东西是闭源的。如果我想使用 Linux 做网络程序,在哪里可以找到实现头文件?可以自己写吗?使用网络 I/O 设备需要操作系统调用。所以我的想法是对内核进行系统调用以打开设备并提供要写入帧的内存地址。无需编写全新的设备驱动程序,请注意。
【问题讨论】:
我只需检查 source repository 并搜索(使用 grep 或 IDE)以查找相关函数的实现。 你为什么想要实际的实现?你可以在没有它的情况下进行网络编程,我实际上建议不要尝试阅读任何网络堆栈实现,因为它通常是操作系统中一些最复杂的子系统。复数“子系统”不是拼写错误,因为网络堆栈通常是几个子系统,分布在操作系统及其内核上。 Joachim,我对了解网络功能如何在最基本的层面上工作以及为网络适配器编写设备驱动程序非常感兴趣。 如果你真的想知道它的实现,我建议你尝试找一本 W. Richard Stevens 的书TCP/IP Illustrated volume 2: The Implementation。 【参考方案1】:在 Unix 上,套接字函数位于 C library 中。这些主要是围绕 OS system calls 的瘦包装器。如果您使用的是 Linux,请查找 GLibC 的来源。
【讨论】:
Nikolai,GCC 是否包含带有套接字功能的 GLibC? 我相信 GCC 和 GLIBC 是独立的项目。以上是关于sys/socket.h这个头文件在XP下怎么找不到?的主要内容,如果未能解决你的问题,请参考以下文章
为啥linux编译内核模块时报错,说找不到/sys/types.h,/sys/socket.h/等头文件???
QT编程可以用sys/socket.h这个头文件吗,怎么我的QT5找不到这个头文件,我的是wind
求解决方案?.c(4) : fatal error C1083: Cannot open include file: 'sys/socket.h': No such