套接口编程

简介:
复制代码
 1 struct in_addr{
 2     in_addr_t s_addr;
 3 };
 4 struct sockaddr_in{
 5     uint8_t sin_len;
 6     sa_family_t sin_family;
 7     in_port_t sin_port;
 8  
 9     struct in_addr sin_addr;
10     char sin_zero[8];
11 };
复制代码
通用套接口地址结构:
复制代码
struct sockaddr{
    uint8_t sa_len;
    sa_family_t sa_family;
    char sa_data[14];
};
 
int bind(int ,struct sockaddr *,socklen_t);
 
strcut sockaddr_in serv;
bind(sockfd,(struct sockaddr *)&serv,sizeof(serv));
复制代码
1 进程到内核的传递:bind,connect,sendto
struct sockaddr_in serv;
connect(sockfd,(SA *)&serv,sizeof(serv));
2 内核到进程的传递:accept,recvfrom,getsockname,getpeername
struct sockaddr_un cli;
socklen_t len;
len = sizeof(cil);
getpeername(unixfd,(SA *)&cli,&len);
值-结果参数:
当函数被调用时,结构大小是一个值。当函数返回时,结构大小是一个结果(我靠!这是跟我玩哲学么?)
常用的值-结果参数:
1 select 3个变量
2 getsockopt 长度变量
3 recvmsg msghdr中的两个成员:msg_namelen \ msg_controllen 
4 ifconfig ifc_len
5 sysctl 前两个长度参数
小端字节序:低序字节存储在起始地址
大端字节序
验证大小端字节序:
复制代码
 1 int main(int argc,char ** argv){
 2 union{ shot s;
 3             char c[sizeof(short)];
 4 }un;
 5 un.s = 0x0102;
 6 printf("%s:",CPU_VENDOR_OS);
 7 if(sizeof(short) ==2){
 8     if(un.c[0]==1 && un.c[1]==2)
 9         printf("big-endian\n");
10     else if(un.c[0]==2 && un.c[1]==1)
11         printf("little-endian\n");
12     else
13         printf("unknown\n");
14 }else{
15     printf("sizeof(short) = %d\n",sizeof(short));
16 }
17 exit(0);
18 }
复制代码
inet_aton 将字符串转换成32位的网络字节序的二进制值
inet_addr 全为1时,返回INADDR_NONE错误
inet_ntoa 将二进制转换成对应的点分十进制
inet_pton 从表达格式转换到数值格式
inet_ntop 从数值格式转换到表达格式
sock_ntop 
 
本文转自博客园xingoo的博客,原文链接:套接口编程,如需转载请自行联系原博主。
相关文章
|
2月前
|
XML JavaScript 前端开发
编程接口
**XML DOM 提供编程接口,将XML文档转换为节点对象树,通过JavaScript等语言操作。属性如 nodeName, nodeValue, parentNode, childNodes 和 attributes 访问节点详情。方法如 deleteNode 用于修改或删除节点。**
|
3月前
|
安全 前端开发 NoSQL
如果让你设计一个接口,你会考虑哪些问题?
接口设计需关注参数校验、扩展性、幂等性、日志、线程池隔离、异常重试、异步处理、查询优化、限流、安全性、锁粒度和避免长事务。入参与返回值校验确保数据正确性;考虑接口扩展性以适应不同业务需求;幂等设计防止重复操作;关键接口打印日志辅助问题排查;核心接口使用线程池隔离确保稳定性;异常处理中可采用重试机制,注意超时控制;适合异步的场景如用户注册后的通知;并行查询提升性能;限流保护接口,防止过载;配置黑白名单保障安全;适当控制锁粒度提高并发性能;避免长事务影响系统响应。
|
测试技术 C++
c++学习之mystring的简单封装
c++学习之mystring的简单封装
99 0
|
10月前
|
算法 网络协议 开发者
|
12月前
|
SEO
套壳子
有很多人都不太了......
套壳子
|
前端开发 微服务
|
SEO
了解套壳子
了解套壳子
106 0
|
Java 编译器
接口的学习与总结
接口的学习与总结
|
Java 编译器 Go
第五章 接口
第一天: 接口的定义和实现 第二天: go语言是面向接口编程.在学习继承的时候说过, go语言只有封装, 没有继承和多态. 那么继承和多态在go中如何实现呢? 通过接口来实现
110 0
第五章 接口
|
设计模式 Java
掌握接口,从这三则案例开始! | 带你学《Java面向对象编程》之六十二
本节手把手带着读者借助接口和工厂设计模式完成获取类信息、处理绘图、设计图形类三则案例。
掌握接口,从这三则案例开始!  | 带你学《Java面向对象编程》之六十二