UNPv13:#第3章#套接字编程简介
来源:互联网 发布:淘宝上情趣用品买家秀 编辑:程序博客网 时间:2024/05/21 07:53
IPv4套接字地址结构
POSIX规范只要求3个字段:sin_family、sin_addr和sin_port。
#include <netinet/in.h> struct sockaddr_in { uint8_t sin_len; sa_family_t sin_family; in_port_t sin_port; struct in_addr sin_addr; ... };
通用套接字地址结构
#include <sys/socket.h>struct sockaddr{ uint8_t sa_len; sa_family_t sa_family; char sa_data[14];};
字节排序程序
术语“小端”和“大端”表示多个字节值的哪一端存储在该值的起始地址。网际协议使用大端字节序来传送这些多字节整数。
#include <netinet/in.h>uint16_t htons(uint16_t host16bitvalue); uint32_t htonl(uint32_t host32bitvalue); uint16_t ntohs(uint16_t net16bitvalue); uint32_t ntohl(uint32_t net32bitvalue);
在那些与网际协议所用的大端字节序相同的系统中,这四个函数通常被定义为空宏。
inet_aton、inet_addr和inet_ntoa函数
#include <arpa/inet.h> int inet_aton(const char* strptr, struct in_addr* addrptr);//字符串有效返回1,否则为0in_addr_t inet_addr(const char* strptr);//字符串有效返回网络字节序的32位IPv4地址,否则为INADDR_NONEchar* inet_ntoa(struct in_addr inaddr);//指向一个点分十进制数串的指针
inet_pton和inet_ntop函数
#include <arpa/inet.h> int inet_pton(int family, const char* strptr, void* addrptr);//成功:1;输入格式无效:0;出错:-1const char* inet_ntop(int family, const void* addrptr, char* strptr, size_t len);//失败:NULL;成功:结果
#include <netinet.in.h>#define INET_ADDRSTRLEN 16
注意
字节流套接字上调用read或write输入或输出的字节数可能比请求的数量少,原因在于套接字的缓冲器可能已经达到了极限,需要再次调用read或write输入或输出剩余的字节。对于文本行交互的应用来说,程序应该按照操作缓冲区来编写。
阅读全文
0 0
- UNPv13:#第3章#套接字编程简介
- UNPv13:#第4章#基于TCP套接字编程
- UNPv13:#第1章#简介
- Unix网络编程 卷1 第3章:套接字编程简介(套接字地址结构)
- Unix网络编程学习笔记之第3章 套接字编程简介
- 3章 套接字编程简介
- 3 套接字编程简介
- 《Unix网络编程》卷1:套接字联网API(第3版):简介、传输层、套接字编程
- 套接字编程简介
- 套接字编程简介
- 套接字编程简介
- 套接字编程简介
- 套接字编程简介
- 套接字编程简介
- 套接字编程简介
- 套接字编程简介
- 套接字编程简介
- 套接字编程简介
- 7、Mybatis表关联----一(多)对一
- spring mvc 拦截器拦截 js,css等请求,
- iOS数据库框架 WCDB的使用详解
- 图片加载之Glide使用总结
- mysql group by limit (根据某一分组,取固定条数) 实现
- UNPv13:#第3章#套接字编程简介
- 为什么爱奇艺等网站在Chrome上可以播放,在Android上的浏览器桌面版播放不了?
- SAP OData介绍
- 俯瞰tcp协议的三次握手
- RabbitMQ在Centos7中安装及使用
- Kotlin入坑(五)类和继承二
- 关于eclipse中js文件没有提示代码的解决
- hbase1.3配置snappy压缩
- project euler 5