inet_pton函数运行时,这个函数执行出错,难道我的函数调用有问题吗

 #include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<stdio.h>
#include<stdlib.h>
#include<strings.h>
void outputError(char *message)
{
    fprintf(stdout, "error:%s\n",message);
    exit(0);
}

int main(int argc, char *argv[])
{

    int sockFd;
    char receiveBuffer;
    struct sockaddr_in server_addr;
    int port=13;
    if(argc!=2)
    {
    outputError("usage:getTime <IPaddress>");
    }
    if((sockFd=socket(AF_INET, SOCK_STREAM, 0))<0)
    {
    outputError("socket occured error!");
    }
    bzero(&server_addr, sizeof(server_addr));
    server_addr.sin_family=AF_INET;
    server_addr.sin_port=htons(port);
    if((inet_pton(AF_INET, argv[1], &server_addr.sin_addr))<=0)
    {
    outputError("inet_pton occured error!");
    }
    if(connect(sockFd, (struct sockaddr*)&server_addr, sizeof(server_addr)<0))
    {
        outputError("connect to server failied");
    }
    while((read(sockFd, receiveBuffer, 1))==1)
    {
    fprintf(stdout, "%c", receiveBuffer);
    }
    exit(0);
}

图片说明

参考[Linux/Unix C 编程] perror函数,strerror函数,errno
使用错误输出函数输出错误代码或信息,这样比自己只输出有错误更容易找到原因。

先把具体错误信息打印出来,这样你就知道API调用具体出错的上下文了,这样比较好分析问题。