- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我想设置一个s_addr 变量的第一个字节,它只是一个unsigned long。这可能吗?如果可能,如何实现?
它不是一个字节数组,所以我不能这样访问它:
struct in_addr addr;
addr.s_addr[0] = 1; // Set this byte to the number 1, or in hex: 0x01
编辑:
事实证明我需要最后一个(即第 4 个)字节而不是第一个字节。但感谢您的帮助,我现在拥有:
*((char *)&addr.s_addr + 3) = 1;
最佳答案
一种丑陋且可能不安全(但仍被广泛使用)的方式是这样的:
*(char *)&addr.s_addr = 42;
如果您知道 addr.s_addr
是一个 unsigned long
,并且如果“第一个”字节是指“最低有效”字节,那么您可以使用按位运算符作为更安全的替代方案,例如
addr.s_addr &= ~0xffUL; // clear previous contents of LS byte
addr.s_addr |= 0x01UL; // set LS byte to 1
关于c++ - 改变 s_addr 的第一个字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19542226/
我想设置一个s_addr 变量的第一个字节,它只是一个unsigned long。这可能吗?如果可能,如何实现? 它不是一个字节数组,所以我不能这样访问它: struct in_addr addr;
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 9 年前。 Improve th
sin_addr.s_addr之间究竟有什么区别?和 inet_addr ? addr.sin_addr.s_addr = inet_addr("127.0.0.1"); 是我在我的编程中使用的 -
这个问题在这里已经有了答案: Sockets - Using INADDR_ANY on client side (4 个答案) 关闭 5 年前。 在socket编程中是做什么的 servaddr.
我正在 Linux 中进行套接字编程。有一个问题。我们怎么可能允许特定的 IP 地址连接到我们的服务器。 例如: 允许 10.0.0.1 拒绝 10.0.0.1 我特别谈论的是我们将 INADDR_A
我正在尝试编写一个小的 socks 代理作为练习。 我正在尝试解析来自传入连接的 SOCKS 连接请求。 socks 协议(protocol)指定所需的目标地址为字节 4、5、6、7,所需的端口为字节
我正在尝试使用 gethostbyname() 函数提供的数据连接到远程主机的测试代码。在示例中,我发现他们执行以下操作: struct hostent* pHostent = gethostbyna
我遇到了两个线程: Socket with recv-timeout: What is wrong with this code? Reading / Writing to a socket usin
我遇到了两个线程: Socket with recv-timeout: What is wrong with this code? Reading / Writing to a socket usin
它是用于 ipv6 的吗?如果 ipv4 是 s_addr 只是重新解释为 32 位整数的虚线四边形? 最佳答案 unsigned long 保证变量的大小至少为4字节,从而保存了整个ip。 unsi
我是一名优秀的程序员,十分优秀!