Czy w 25 linii kodu muszę zrobić wskaźnik? Bo, gdy próbuję zrobić coś takiego:
int status;
struct addrinfo *hints;
struct addrinfo *servinfo;
memset(&hints, 0, sizeof *hints);
hints->ai_family = AF_UNSPEC;
hints->ai_socktype = SOCK_STREAM;
status = getaddrinfo("www.youtube.com", "http", &hints, &servinfo);
Mam taki błąd:
||=== Build: Release in basicSocket (compiler: GNU GCC Compiler) ===|
D:\Networking in C\basicSocket\main.c||In function 'main':|
D:\Networking in C\basicSocket\main.c|79|warning: implicit declaration of function 'inet_pton'; did you mean 'inet_ntoa'? [-Wimplicit-function-declaration]|
D:\Networking in C\basicSocket\main.c|81|warning: implicit declaration of function 'inet_ntop'; did you mean 'inet_ntoa'? [-Wimplicit-function-declaration]|
D:\Networking in C\basicSocket\main.c|88|error: dereferencing pointer to incomplete type 'struct addrinfo'|
D:\Networking in C\basicSocket\main.c|93|warning: implicit declaration of function 'getaddrinfo' [-Wimplicit-function-declaration]|
D:\Networking in C\basicSocket\main.c|84|warning: variable 'status' set but not used [-Wunused-but-set-variable]|
||=== Build failed: 1 error(s), 4 warning(s) (0 minute(s), 0 second(s)) ===|
O co tu chodzi, bo mam wszystko tak jak w przykładzie.
Kod:
int main(int argc , char *argv[])
{
// Initialise Winsock
WSADATA wsa;
printf("\nInitialising Winsock...");
if (WSAStartup(MAKEWORD(2,2),&wsa) != 0)
{
printf("Failed. Error Code : %d",WSAGetLastError());
return 1;
}
printf("Initialised.\n\n");
// Main program
char ipv4[32];
struct sockaddr_in sa;
inet_pton(AF_INET, "10.12.110.67", &(sa.sin_addr));
inet_ntop(AF_INET, &(sa.sin_addr), ipv4, sizeof(ipv4));
printf("The IPv4 address is: %s\n", ipv4);
int status;
struct addrinfo hints;
struct addrinfo *servinfo;
memset(&hints, 0, sizeof hints);
hints.ai_family = AF_UNSPEC;
hints.ai_socktype = SOCK_STREAM;
status = getaddrinfo("www.youtube.com", "http", &hints, &servinfo);
return 0;
}
Wskakuje mi taki błąd:
||=== Build: Release in basicSocket (compiler: GNU GCC Compiler) ===|
D:\Networking in C\basicSocket\main.c||In function 'main':|
D:\Networking in C\basicSocket\main.c|79|warning: implicit declaration of function 'inet_pton'; did you mean 'inet_ntoa'? [-Wimplicit-function-declaration]|
D:\Networking in C\basicSocket\main.c|81|warning: implicit declaration of function 'inet_ntop'; did you mean 'inet_ntoa'? [-Wimplicit-function-declaration]|
D:\Networking in C\basicSocket\main.c|85|error: storage size of 'hints' isn't known|
D:\Networking in C\basicSocket\main.c|93|warning: implicit declaration of function 'getaddrinfo' [-Wimplicit-function-declaration]|
D:\Networking in C\basicSocket\main.c|85|warning: unused variable 'hints' [-Wunused-variable]|
D:\Networking in C\basicSocket\main.c|84|warning: variable 'status' set but not used [-Wunused-but-set-variable]|
||=== Build failed: 1 error(s), 5 warning(s) (0 minute(s), 0 second(s)) ===|