//extern unsigned char gSntpServerIP[20];
int GetNTPTime(unsigned char *ntpServerIP,unsigned int ntpPort,unsigned int *data)
{
int sockfd=0;
char ntpServerName[20];
STNP_Header H_NTP;
H_NTP.LiVnMode = 0x1b;//LI(2bit ) VN(3bit 版本) Mode(3bit客户端模式)
H_NTP.Stratum = STRATUM;
H_NTP.Poll = POLL;
H_NTP.Precision =PREC;
memset(ntpServerName,0,sizeof(ntpServerName));
sprintf(ntpServerName,"%s",ntpServerIP);
NF_LOG(DEBUG_K,"@_@,sync time from %s,H_NTP.Stratum=%d\n", ntpServerName,H_NTP.Stratum);
#if 0//不能解析域名的方式
struct sockaddr_in server;
server.sin_family = AF_INET;
server.sin_addr.s_addr = gethostIPbyname((const char*)ntpServerName);
server.sin_port = htons(ntpPort);
if(-1 == (int)server.sin_addr.s_addr)
{
NF_LOG(ERROR_L,"[%s,%d]s_addr error...\n",__FUNCTION__,__LINE__);
return -1;
}
sockfd = socket(AF_INET, SOCK_DGRAM, 0);
if(sockfd<0)
{
NF_LOG(ERROR_L,"[%s,%d]socket error...\n",__FUNCTION__,__LINE__);
return -1;
}
#endif
#if 1//getaddrinfo可以解析域名的方式
int rc;
addrinfo hin
【原】socket通信实现域名解析
最新推荐文章于 2024-06-28 20:59:54 发布
这篇博客探讨了在C语言中使用socket编程进行网络通信时如何实现域名解析。重点介绍了sockaddr_in结构体在IPv4网络中的应用,强调sin_family字段应设置为AF_INET。同时提到了addrinfo结构体在存储地址信息中的作用,以及getaddrinfo函数如何获取多个IP地址,可用于优化bind操作,提高连接的成功率。
摘要由CSDN通过智能技术生成