Обучение программированию сокетов, а ниже - вырезание/вставка частей ошибки.Ошибка программирования сокета TCP-соединения
FYI, я следил за this tutorial.
Undrestood 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 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
Пожалуйста, укажите мне, что я делаю не так?
Превращение всех предупреждений компилятора при использовании '-Wall' помогает ... – alk
Также:' gethostbyame() 'и' gethostbyaddr() 'как-то устарели. Вы можете лучше использовать 'getnameinfo()' и 'getaddrinfo()'. – alk