Socket基本API 总结
来源:互联网 发布:纪念册制作软件app 编辑:程序博客网 时间:2024/05/02 01:42
套接字建立过程:
srever:1 socket创建套接字2 bind ip和port3 listen4 accept5 read/write6 closeclient:1 socket2 connect3 read/write4 close
int socket(int domain, int type, int protocol);//失败返回-1,成功返回文件描述符//domain 套接字协议族 type数据类型 protocol通信协议信息int bind(int sockfd, struct sockaddr *myaddr, socklen_t addrlen);int listen(int sockfd, int backlog);int accept(int sockfd, struct sockaddr *addr,socklen_t *addrlen);int connect(int sockfd, struct,sockaddr *serv_addr, socklen_t, addrlen);/*成功返回0,失败返回-1*/
协议族:
PF_INET, PF_INET6,PF_LOCAL等
套接字类型:
SOCK_STREAM 面向连接
SOCK_DGRAM 面向消息
文件描述符:
int open(const char *path, int flag);//path 地址,flag打开方式int close(int fd);//成功返回0,失败返回-1//写入文件:ssize_t write(int fd, const void *buf, size_t, ntypes);//失败返回-1,成功返回写入的字节数//读取文件ssize_t read(int fd, void *buf, size_t nbytes);//失败返回-1,成功返回接收的字节数
IPv4结构体
struct sockaddr_in{ sa_family_t sin_family; //地址族 uint16_t sin_port; //端口号 struct in_addr sin_addr; //32位ip char sin_zero[8];//不使用 };struct in_addr{ In_addr_t s_addr; //32位iPv4地址}
地址族: AF_INET,AF_INET6,AF_LOCAL
字节序转换:
unsigned short htons(unsigned short);unsigned short ntohs(unsigned short);unsigned short htonl(unsigned short);unsigned short ntohl(unsigned short);/*h代表主机(host)字节序n代表网络(network)字节序s是shortl是long*/in_addr_t inet_addr(const char *string);//返回32位大端整数值,失败返回INADDR_NONEint inet_aton(const char *string, struct in_addr * addr);//成功返回1,失败返回0//将字符串32位ip地址转换为整数char *inet_ntoa(struct in_addr adr);//成功返回地址值,失败返回-1//将整数ip转换为字符串
UDP函数
ssize_t sendto(int sock, void *buff, size_t ntypes, int flags, struct sockaddr *to, socklen_t addrlen);ssize_t recvfrom(int sock, void *buff, size_t nbytes, int flags, struct sockaddr *from, socklen_t *addrlen);
断开函数shutdown
int shutdown(int sock, int howto);/*第二个参数是断开方式:SHUT_RD 断开输入流SHUT_WR 断开输出流SHUT_RDWR 同时断开O/I流*/
IP与域名的转换
struct hostent * gethostbyname(const char *hostname);//通过域名获得ipstruct hostent * gethostbyaddr(const char *addr, socklen_t len, int family);//通过ip获得域相关信息struct hostent{ char * h_name; //official name char ** h_aliases; //alias list int h_addrtype; //host address type int h_length; //address length char ** h_addr_list; //address list};
0 0
- Socket基本API 总结
- socket基本API详解
- socket编程API总结
- socket编程API总结
- 网络编程socket基本API
- socket的API函数总结
- 网络编程socket基本API详解
- 网络编程socket基本API详解
- 网络编程socket基本API详解
- 网络编程socket基本API详解
- 网络编程socket基本API详解
- 网络编程socket基本API详解
- 网络编程socket基本API详解
- 网络编程socket基本API详解
- 网络编程socket基本API详解
- 网络编程socket基本API详解
- 网络编程socket基本API详解
- 网络通信及Socket基本API
- Yii2基于角色的访问控制权限RBAC表结构原理分析
- ER图实例解析
- 【Caffe实践】 添加自己的网络层
- C++中如何避免内存泄露
- CAFFE安装2:MKL python 和 caffe
- Socket基本API 总结
- 定时器-NSTimer
- HDOJ 3664 Permutation Counting
- 运维角度浅谈:MySQL数据库优化
- LeetCode——Reverse Integer
- IOS基础 总结
- JOG运动参数设置
- [转] 正则表达式
- 二叉树遍历