首页 > 解决方案 > NTP 客户端连接超时

问题描述

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <sys/socket.h>
#include <sys/types.h>
#include <netdb.h>
#include <arpa/inet.h>

int main(int argc, char **argv){
    struct addrinfo hints,*res;
    char hostname[12],timedata[200];
    
    memset(&hints,0,sizeof hints);
    hints.ai_family=AF_INET;
    hints.ai_socktype=SOCK_STREAM;
    hints.ai_flags=AI_PASSIVE;

    getaddrinfo(argv[1],"123",&hints,&res);
    int socketfd = socket(AF_INET,SOCK_STREAM,0);
    
    struct sockaddr_in *foo=(struct sockaddr_in *)res->ai_addr;
    printf("connecting to server: %s\n",inet_ntoa(foo->sin_addr));

    if(connect(socketfd,res->ai_addr,res->ai_addrlen)==-1){
        perror("connect error");return -1;}
    printf("connected to server\n");

    recv(socketfd,timedata,sizeof timedata,0);
    printf("%s\n",timedata);
    return 0;
}

这是我的 ntp 客户端代码,它从 ntp 服务器接收白天消息

但是当我运行它时,./ntpclient time.google.com我得到了connect error:Connection timed out 我已经尝试过其他服务器以及同样的问题

标签: csockets

解决方案


推荐阅读