192.168.0.74在经过inet addr_addr()转换之后在内存中的值是多少

(4)ntohs h=host,n=networks = short。 常用于与对方通信後在需要使用对方端口的时候,将其中(收到的对方端口为网络字节序)转为主机字节序

(7)htonl,将unsigned long 数据从主机序转为网络序列(用於格式化本机数据,在网络中传输)

?? 1  Socket编程 socket这个词可以表示很多概念: 在TCP/IP协议中“IP地址+TCP或UDP端口号”唯一标识网络通讯中的一个进程,“IP 地址+端口号”就称为socket

(8) ntohl将unsigned long 数据从网络序转为主机序列。(用于将网络中接收到的数据转化为本地可识别的整数)

(2)和(4)假设此时cli_addr结构体已通过accept填充。

 

注意:结构体之间不能直接进行强制转换, 必须先转换成指针类型才可以进行结构体间的类型转换, 这里需要明确的定義就是什么才叫强制转换. 强制转换是将内存中一段

将一个IP转换成一个互联网标准点汾格式的字符串

如果正确,返回一个字符

指向一块存储着点分格式IP地址的静态缓冲区(同一线程内共享此内存);错误,返回NULL

inet addr_aton()是一個将一个字符串IP地址转换为一个32位的网络序列IP地址。

2 输出参数addr是将要用新的IP地址更新的结构

如果这个函数成功,函数的返回值非零如果输入地址不正确则会返回零。使用这个函数并没有

存放在errno中所以它的值会被忽略。

对于这个函数有一点迷惑的就是这个

  实际运行結果如下:

  inet addr_ntoa返回一个char *,而这个char *的空间是在inet addr_ntoa里面静态分配的所以inet addr_ntoa后面的调用会覆盖上一次的调用。第一句printf的结果只能说明在printf里面的可变參数的求值是从右到左的仅此而已。

上面的这个问题值得重视

presentation格式通常是asciil串,nueric格式则是存在于套接口地址结构中的二进制值

我要回帖

更多关于 inet_addr 的文章

 

随机推荐