- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
#include <sys/socket.h>
#include <err.h>
#include <stdio.h>
#include <arpa/inet.h>
#include <netinet/in.h>
int main(int argc, char **argv) {
struct sockaddr_in X = {0};
X.sin_family = AF_INET;
X.sin_addr.s_addr = inet_addr("127.0.0.1");
X.sin_port = htons(8080);
struct sockaddr_in Y = {0};
Y.sin_family = AF_INET;
Y.sin_addr.s_addr = inet_addr("212.43.159.20");
Y.sin_port = htons(80);
printf("X:Y %s:%s\n", inet_ntoa(X.sin_addr), inet_ntoa(Y.sin_addr));
printf("X %s\n", inet_ntoa(X.sin_addr));
printf("Y %s\n", inet_ntoa(Y.sin_addr));
return 0;
}
最佳答案
来自 inet_ntoa
的手册页:
The
inet_ntoa()
function converts the Internet host address in given in network byte order to a string in standard numbers-and-dots notation. The string is returned in a statically allocated buffer, which subsequent calls will overwrite.
inet_ntoa
使用静态缓冲区作为其输出,并且因为您在一次函数调用中调用它两次,
printf
传递了相同指针的两个副本。它包含最后完成的调用的内容。
关于c - inet_ntoa 的奇怪 printf 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33593824/
这个问题已经有答案了: Weird printf behaviour with inet_ntoa (2 个回答) 已关闭 5 年前。 让我很困惑,这个例子有不同的结果。是不是我哪里出了问题。 #in
有人知道 MySql INET_NTOA() 如何将整数值转换回 IP 地址格式吗?我想知道内部如何进行计算以将IP转换为其原始互联网标准点分十进制格式。 最佳答案 它使用网络将一个整数分解为四个字节
我在数据库中有一个表 (sessions),其第一列包含数字 IP 地址,例如: _____________ | srcIP | ------------- | 167973143 | | 1
inet_ntoa() 函数导致以下代码中的 Segmentation fault 错误。请告诉我,为什么。我该如何解决?非常感谢! void ClientAdd ( int clientSocket
我在/usr/include/arpa/inet.h 中看到下面这行: extern char *inet_ntoa (struct in_addr __in) __THROW; 但是它真正定义在哪里
我正在声明以下变量 unsigned long dstAddr; unsigned long gateWay; unsigned long mask; 这些变量包含网络字节顺序的 IP 地
#include #include /* for strncpy */ #include #include #include #include
尝试为数据包嗅探器编写处理程序。我在转换和 inet_ntoa() 方面遇到问题。代码如下: uint32_t *iphdr_srcaddr = malloc(sizeof(uint32_t)); i
我正在尝试使用 inet_ntoa 函数写入以下代码: printf("Got connection from: %s:%d\n", inet_ntoa(cli_addr.sin_addr.s_add
我使用函数 char* inet_ntoa(struct in_addr in), 编写了一个服务器当我包含标题时 和 ,可以生成带有编译器警告的可执行二进制文件,但是当程序处理来自 inet_nt
浏览 GNU C 库的源代码,我发现 inet_ntoa 是用 static __thread char buffer[18] 我的问题是,既然需要使用可重入的inet_ntoa,为什么GNU C库的
考虑以下程序: #include #include #include #include #include #include void printhost(cha
我应该是瞎了,因为我在 ubuntu 和 debian 的发行版中找不到这些命令,也没有包含它们的包。 我应该自己用 C 编写代码和编译它们(或者用 perl 或其他任何语言编写或查找此代码)还是它(
我正在理解 gethostbyname() 函数。当时我找到了下面的示例程序。 #include #include #include #include #include #include
好的,在发布这个问题之前,我已经检查了这里的线程 in_addr_t to string 我的问题不一样。 我知道 inet_ntoa 函数属于以下类型 char * inet_ntoa (struc
// char ip1[] = "127.0.0.1"; char ip2[] = "211.100.21.179"; printf("ip1: %s\nip2: %s\n", ip1, ip2);
#include #include #include #include #include int main(int argc, char **argv) { struct socka
我遇到了 inet_ntoa 导致 OSX 上的段错误的问题,这不会发生在 Linux 上。 我的测试代码如下。 // sample.c #include #include #include #
我查看了 inet_ntoa 的实现喜欢 this和 this , 我想知道为什么他们都分配了一个 18 个字符的缓冲区。 如果我取最大长度的 IPv4 地址字符串:255.255.255.255我需
当我在没有 arpa/inet.h 包含的情况下使用 inet_ntoa 时,编译器为什么不报告错误? 我运行了这段代码: struct sockaddr_in dest; printf("%d\n"
我是一名优秀的程序员,十分优秀!