gpt4 book ai didi

c - TCP套接字编程错误

转载 作者:行者123 更新时间:2023-12-02 05:38:10 25 4
gpt4 key购买 nike

学习套接字编程,以下是错误部分的剪切/粘贴。

仅供引用,我正在关注 this tutorial .

未理解 gethostbyname() 返回 struct hostent

struct hostent *gethostbyname(const char *name);

使用以下代码。

  1 #include <stdio.h>
2 #include <sys/types.h>
3 #include <sys/socket.h>
4 #include <netinet/in.h>
5 #include <stdlib.h>
6 #include <strings.h>
7
8 int main(int argc, char *argv[])
9 {
10 int sockfd, portno, n;
11 struct sockaddr_in serv_addr;
12 struct hostent *server;
13
14 server = gethostbyname(argv[1]);
15
16 /* compose serv_addr */
17 bzero( (char *)&serv_addr, sizeof(serv_addr) );
18 serv_addr.sin_family = AF_INET;
19 bcopy( (char *)server->h_addr, (char *)&serv_addr.sin_addr.s_addr, server->h_length);
20 serv_addr.sin_port = htons(portno);
21
22 return 0;
23 }

我有以下 gcc 错误/警告

$gcc client2.c
client2.c: In function ‘main’:
client2.c:14: warning: assignment makes pointer from integer without a cast
client2.c:19: error: dereferencing pointer to incomplete type
client2.c:19: error: dereferencing pointer to incomplete type

请指出我做错了什么?

最佳答案

尝试将其添加到顶部:

#include <netdb.h>

它是 gethostbyname 的必需包含。如果您在命令行键入 man gethostbyname,您将获得手册页,它打开:

Screenie of "gethostbyname(3)" manpage.

联机帮助页详细说明了您需要包含哪些 header (在SYNOPSIS 下)。

(按 q 退出 man。)

关于c - TCP套接字编程错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10559831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com