【Linux C王者归来】【第二十三章】【网络编程基础】
2016-05-05 15:33
309 查看
1.字节序转换:
htonl,htons,ntohl,ntohs
2.确定大小端:
short a =htons(0x0102)
short *p = &a
*(char*)p == 0x01
小端
3.网络通信地址结构:
struct sockaddr_in{
sa_family_t sin_family;
in_port_t sin_port;
struct in_addr sin_addr
usigned char sin_zero[8]
}
4.地址转化函数
inet_ntop(domain,数字地址,字符串缓存地址,长度)
inet_pton(domain,点分十进制,整数地址)
5.gethostent 获得主机名字,别名,地址类型,ip长度,ip列表,其内容保存在静态存储区,是一致的;另外不要忘记使用endhostent关闭/ETC/HOSTS文件
6.地址映射函数 getaddrinfo,没有用过
7.套接字:
通信与 AF_INET IPV4,AF_INET6 IPV6 ,AF_UNIX, 非网络通信,AF_UNSPIC,未指定域
类型:SOCK_DGRAM 无连接,长度固定报文
SOCK_STREAM 链接,有序字节流
SOCK_RAW 原始套接字,可以绕过协议
SOCK_SEQPACKET 长度固定,面向连接
8.socket获得套接字描述符,别忘了close
9.bind(fd,sockaddr*addr,len),服务器端,可以把addr指定为INADDR_ANY
10.connect(fd,sockaddr*,len)
11.listen(fd,times)
12.accept (fd,sockaddr*,len)返回的是一个新的链接描述符,第二参数获取地址信息,不关心可以写NULL
13.避免网络读失败,可以循环度,如果是信号中断导致,重置需要读入的数据
14.对于面向链接的的传输
send(fd,void*buffer,size_t nbytes,flag)
recv(fd,buffer,nbytes,flags)
15.无数据链接:sendto,recvfrom,二者新增了sockaddr的地址结构指针和结构体长度,用于SOCK_DGRAM
16.非阻塞套接字要改变套接字属性,具体需要学习
htonl,htons,ntohl,ntohs
2.确定大小端:
short a =htons(0x0102)
short *p = &a
*(char*)p == 0x01
小端
3.网络通信地址结构:
struct sockaddr_in{
sa_family_t sin_family;
in_port_t sin_port;
struct in_addr sin_addr
usigned char sin_zero[8]
}
4.地址转化函数
inet_ntop(domain,数字地址,字符串缓存地址,长度)
inet_pton(domain,点分十进制,整数地址)
5.gethostent 获得主机名字,别名,地址类型,ip长度,ip列表,其内容保存在静态存储区,是一致的;另外不要忘记使用endhostent关闭/ETC/HOSTS文件
6.地址映射函数 getaddrinfo,没有用过
7.套接字:
通信与 AF_INET IPV4,AF_INET6 IPV6 ,AF_UNIX, 非网络通信,AF_UNSPIC,未指定域
类型:SOCK_DGRAM 无连接,长度固定报文
SOCK_STREAM 链接,有序字节流
SOCK_RAW 原始套接字,可以绕过协议
SOCK_SEQPACKET 长度固定,面向连接
8.socket获得套接字描述符,别忘了close
9.bind(fd,sockaddr*addr,len),服务器端,可以把addr指定为INADDR_ANY
10.connect(fd,sockaddr*,len)
11.listen(fd,times)
12.accept (fd,sockaddr*,len)返回的是一个新的链接描述符,第二参数获取地址信息,不关心可以写NULL
13.避免网络读失败,可以循环度,如果是信号中断导致,重置需要读入的数据
14.对于面向链接的的传输
send(fd,void*buffer,size_t nbytes,flag)
recv(fd,buffer,nbytes,flags)
15.无数据链接:sendto,recvfrom,二者新增了sockaddr的地址结构指针和结构体长度,用于SOCK_DGRAM
16.非阻塞套接字要改变套接字属性,具体需要学习
相关文章推荐
- 第三届4.29“安恒杯”网络安全技术大赛初赛wirteup心得-MISC
- java网络基本类使用(一)
- TCP/IP协议学习笔记
- Web服务器性能/压力测试工具http_load、webbench、ab、Siege使用教程
- 学习笔记(十二)使用网络技术
- python 网络爬虫 翻译
- HttpServletRequest对象(一)
- 浅读网络框架Volley源码
- Vmware虚拟机网络模式及虚拟机与物理机通信方法
- 网络仿真工具TOTEM之——IP路由功能
- HTTP响应头和请求头信息对照表
- HTTP method GET is not supported by this URL 中servlet 的405错误
- Linux下网络故障诊断
- http和scoket通信的区别。
- HTTP 两种常用的方法:GET方法与POST方法的比较
- 解决Android调用https服务API时出错的问题
- Retrofit网络请求框架基础操作
- 北京大学信息科学技术学院本科生课程体系课程大纲选登——计算机网络与WEB技术
- 神经网络和深度学习-学习总结
- TCP的流量控制