我正在关注beej的网络指南,它一直很好,因为我对一切都很了解,他解释得很好.然而,当我想测试他向我展示的一些很酷的东西时,它将无法正常工作!:(
我不确定sockaddr_in到底在哪里宣布,但也许有人会这样帮助我!
这是我到目前为止(测试将字符串形式的ip转换为ip到4字节的积分,反之亦然):
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
int main(void)
{
sockaddr_in sin;
inet_pton(AF_INET, "192.168.2.1", &sin.in_addr);
char ip[INET_ADDRSTRLEN];
inet_ntop(AF_INET, &sin.in_addr, ip, INET_ADDRSTRLEN);
printf("%s\n", ip);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
对我来说,如果这对我来说真是愚蠢的话,我完全无能为力,对不起!
编辑:我正在使用名为Mint的Linux Debian发行版,如果它有帮助的话?
cni*_*tar 29
标准说:
标题应定义sockaddr_in结构
你必须包括<netinet/in.h>并声明sin如下:
struct sockaddr_in sin;
^^^^^^
Run Code Online (Sandbox Code Playgroud)
要了解您需要struct关键字的原因,请参阅此C常见问题解答.长话短说,typedefC中没有隐含的内容.
根据ip(7)手册页,您还需要
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/ip.h>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
47286 次 |
| 最近记录: |