![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络编程
八戒爱飘柔
Tech、Friend、Love
展开
-
UDP通信协议-recvfrom() MSG_PEEK 参数
这几天为了实现一个基于UDP的上层SIP协议,碰到一个离奇的问题,debug两天方得结果,太难受了。 问题描述:UDP客户端第一次通过sendto()发送消息给服务器端后,阻塞在recvfrom(),等待服务器返回消息。之后的第二次,第三次,第N次客户端都不会阻塞在recvfrom()函数,而是直接获得数据,不管服务器端有没有sendto(),而且每次获得的数据都是一样的。原创 2015-01-17 17:19:42 · 3164 阅读 · 0 评论 -
DNS IPV6化——正向、反向解析参数设置
以下整理资料来自网络:DNS正向解析时,IPv4的地址正向解析的资源记录是“A”,而IPv6地址的正向解析目前有两种资源记录:“AAAA”、“A6”。DNS反向解析时,IPv6反向解析的记录和IPv4一样,是“PTR”(不是AAAA)程序中就是这种情况,但地址表示形式有两种:半字节16进制数字格式、二进制串(Bit-string)格式,分别对应两种域后缀:IP6.INT、IP6.ARPA。原创 2014-12-18 11:53:58 · 3942 阅读 · 0 评论 -
IPv6 地址格式
IPv6 地址格式IPv6 地址大小为 128 位。首选的 IPv6 地址表示为:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx,其中每个 x 是代表一个 4 位的十六进制数字。IPv6 地址范围从 0000:0000:0000:0000:0000:0000:0000:0000 至ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff转载 2014-11-10 17:12:22 · 743 阅读 · 0 评论 -
关于htons和htonl
我开始的时候认为htons和htonl可以只用htonl代替但是后来发现这个是错误,会导致服务器端和客户端连接不上。下面就让我们看看他们:htons #include uint16_t htons(uint16_t hostshort); htons的功能: 将一个无符号短整型数值转换为网络字节序,即大端模式(big-转载 2014-11-17 15:22:48 · 2704 阅读 · 0 评论 -
unix网络编程——(apue)编译时的err_sys和err_quit错误的解决办法最终版
http://blog.csdn.net/gaorentaba/article/details/4748611apue下载编译:http://blog.csdn.net/dycwahaha/archive/2008/04/17/2300938.aspx apue编译成功放到指定文件夹之后之后,程序中添加apue.h并引用其中内容,在eclipse中编译,出现err_sys和er转载 2014-11-18 11:28:23 · 1948 阅读 · 0 评论 -
__attribute__((packed))详解 && 跨平台时基于数据结构的网络通信
__attribute__((packed))详解标签: it分类: linux程序1. __attribute__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,是GCC特有的语法。这个功能是跟操作系统没关系,跟编译器有关,gcc编译器不是紧凑模式的,我在windows下,用vc的转载 2014-11-19 10:25:43 · 512 阅读 · 0 评论 -
Unix网络编程——readn、writen
问题引入:socket上的read write 操作不同与一般的文件IO操作,socket上的用read write读写的字节数可能比要求的少,但这并不是错误,原因是socket的缓冲区可能已经达到了极限。此时所需要的就是再次调用read write 以写入或输出剩余的字符。这种情况在socket中很常见,但在写字节流socket时只能在socket非堵塞的情况下才会出现,然而为预防实现万一返转载 2014-11-26 11:15:33 · 526 阅读 · 0 评论 -
UNIX网络编程——资源的自动化管理-引用计数与垃圾收集比较
源链接:http://blog.codingnow.com/2008/06/gc.html本质上来说,引用计数策略和垃圾收集策略都属于资源的自动化管理。所谓自动化管理,就是在逻辑层不知道资源在什么时候被释放掉,而依赖底层库来维持资源的生命期。而手工管理,则是可以准确的知道资源的生命期,在准确的位置回收它。在 C++ 中,体现在析构函数中写明 delete 用到的资源,并由编译器自动生成转载 2014-12-09 10:31:23 · 352 阅读 · 0 评论 -
DNS IPV6化——inet_ntop、inet_pton
我就奇了怪了,在Win32工程里导入#include 后Inet_ntop()函数的使用毫无压力,但在DLL工程里却报错: IntelliSense: identifier "inet_ntop" is undefined,实在是搞不懂,有懂的朋友可以告诉我哈。现在急着用,只有用自己的函数实现。Inet_ntop():converts an IPv4 or IPv6 Inter原创 2014-12-26 09:28:46 · 3037 阅读 · 0 评论 -
IPv6地址详解
目录(?)[+]IPv6地址介绍注:整理转载自 http://ipv6.tsinghua.edu.cn/technology/ipv6-di-zhi-jie-shao/ 和 http://sj.media.edu.cn/xiayidai/index2.php?IDx=2851. 认识IPv6地址IPv4地址是类似转载 2014-11-12 22:08:15 · 2140 阅读 · 0 评论