hostent

2020/2/20 端口绑定和域名解析

自闭症网瘾萝莉.ら 提交于 2020-02-21 04:19:48
端口绑定和域名解析 TCP服务器的同一个端口不能够启动、绑定两次;但UDP服务器可以,但客户端连接上以后,信息只能发送给最新绑定的那个服务器端口,相当于端口被重新绑定了。 域名解析函数 struct hostent{ char *h_name; //主机名 char **h_aliases; //别名 int h_addrtype; //协议类型 int h_length; //网络地址大小 char **h_addr_list; //指向网络地址的指针 }; #include <netdb.h> struct hostent *gethostent(void); struct hostent* gethostbyname(const char *hostname); void sethostent(int stayopen); void endhostent(void);//有get就有end,用于释放内存 查看/etc/hosts文件可以知道本机的IP和域名 利用gethostbyname解析域名 源代码 #include <netdb.h> #include <stdio.h> #include <stdlib.h> #include <memory.h> #include <arpa/inet.h> void out_addr(struct hostent *h) {

网络信息检索

大城市里の小女人 提交于 2020-01-28 13:53:31
网络信息检索函数 man gethostbyname 1 #include <netdb.h> 2 extern int h_errno; //错误号 3 4 //name一般为域名,通过域名获取主机相关信息 5 struct hostent *gethostbyname(const char *name); 6 7 #include <sys/socket.h> /* for AF_INET */ 8 struct hostent *gethostbyaddr(const void *addr, 9 socklen_t len, int type); 10 11 void sethostent(int stayopen); 12 13 void endhostent(void); //释放hostent结构体的变量值 14 15 void herror(const char *s); //打印出错信息 16 17 const char *hstrerror(int err); //打印出错信息 18 19 /* System V/POSIX extension */ 20 struct hostent *gethostent(void); 21 //返回值:成功返回结构体指针hostent, 错误返回一个空指针。 22 23 The hostent structure is

iOS 域名解析ip(解析)

大憨熊 提交于 2020-01-21 20:18:24
//思路:1.gethostbyname(szname);取得主机信息结构体 // 2.memcpy(&ip_addr,phot->h_addr_list[0],4);从主机信息结构体中取出需要的32位ip地址ip_addr(二进制的) // 3.inet_ntop(AF_INET, &ip_addr, ip, sizeof(ip));//将二进制整数转换为点分十进制 #pragma mark 域名解析ip -(NSString*)getIPAddressByHostName:(NSString*)strHostName { //hostent是一个结构体,记录主机的相关信息,该结构记录主机的信息,包括主机名、别名、地址类型、地址长度和地址列表。 //struct hostent *gethostbyname(const char *name),gethostbyname函数根据域名解析出服务器的ip地址,它返回一个结构体struct hostent const char* szname = [strHostName UTF8String]; struct hostent* phot ; @try { phot = gethostbyname(szname); } @catch (NSException * e) { return nil; } // struct in_addr

gethostname、gethostbuname

青春壹個敷衍的年華 提交于 2019-12-03 23:15:08
gethostname() :返回本地主机的标准主机名 原型: #include<unistd.h> int gethostname(char *name, size_t len); 参数说明: name: 接收缓冲区,字节长度必须为len,或更长,存获取主机名 len: 接收缓冲区name的最大长度 返回值: 如果函数成功,返回0,如果发生错误,返回-1,错误号存放在外部变量errno中。 /* gethostname.c */ #include<stdio.h> #include<stdlib.h> #include<unistd.h> #define ERR_EXIT(m) \ do {\ perror(m); \ exit(EXIT_FAILURE); \ }while(0); int main() { char name[256]; if (gethostname(name, sizeof(name))) { ERR_EXIT("gethostname"); } printf("hostname = %s\n",name); return 0; } 运行结果: gethostbyname() 函数原型: #include <netdb.h> #include <sys/socket.h> struct hostent *gethostbyname(const char