高性能服务器1 socket基础API |
您所在的位置:网站首页 › 中国有多少种蛇图片及名字 › 高性能服务器1 socket基础API |
socket API
socket基础API专用socket地址IP地址点分与二进制转换服务端步骤客户端步骤数据读写获取地址信息读取设置socket属性gethostbyname 和 gethostbyaddrgetservbyname 和 getservbyportgetaddrinfogetnameinfo
本文参考 《 Linux高性能服务器编程》 socket基础API字节序分为大端字节序(big endian)和小端字节序(ittle endian)。大端字节序是指一个整数的高位字节(23 ~ 31 bit)存储在内存的低地址处,低位字节(0~7bit) 存储在内存的高地址处。小端字节序则是指整数的高位字节存储在内存的高地址处,而低位字节则存储在内存的低地址处。 inet_addr 点分十进制字符串 >> 网络字节序,失败返回INADDR_NONE。 inet_aton 与 inet_addr 函数作用相同,转换结果储存到inp指向的地址,成功返回1,失败返回0。 inet_ntoa 网络字节序 >> 点分十进制,返回结果地址。 inet_pton 字符串 >> 网络字节序 inet_ntop 与 inet_pton 相反 cnt 为存储单元大小 服务端步骤创建socket: int socket(int domain, int type, int protocol); socket与IP地址绑定: int bind(int sockfd, const struct sockaddr* my_addr, socklen_t addrlen); 监听socket: int listen(int sockfd, int backlog); 接受连接:int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen); 客户端步骤发起连接:int connect(int sockfd, const struct sockaddr *serv_addr, socklen_t addrlen); 关闭连接:int close(int fd); 立即终止连接:int shutdown(int sockfd, int howto); 数据读写option_name参数: gethostbyname 函数根据主机名称获取主机的完整信息,gethostbyaddr 函数根据IP地址获取主机的完整信息。 getservbyname 和 getservbyport 分别根据名称和端口获取某个服务的完整信息。 getaddrinfo 既能通过主机号获得IP地址,也能通过服务名获得端口号。 返回值为addrinfo 结构体 getnameinfo 能通过socket 地址同时获得以字符串表示的主机名和服务名。 flags 参数: |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |