5.1. getaddrinfo()-準備開始!
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
int getaddrinfo(const char *node, // 例如: "www.example.com" 或 IP
const char *service, // 例如: "http" 或 port number
const struct addrinfo *hints,
struct addrinfo **res);int status;
struct addrinfo hints;c
struct addrinfo *servinfo; // 將指向結果
memset(&hints, 0, sizeof hints); // 確保 struct 為空
hints.ai_family = AF_UNSPEC; // 不用管是 IPv4 或 IPv6
hints.ai_socktype = SOCK_STREAM; // TCP stream sockets
hints.ai_flags = AI_PASSIVE; // 幫我填好我的 IP
if ((status = getaddrinfo(NULL, "3490", &hints, &servinfo)) != 0) {
fprintf(stderr, "getaddrinfo error: %s\n", gai_strerror(status));
exit(1);
}
// servinfo 目前指向一個或多個 struct addrinfos 的鏈結串列
// ... 做每件事情,一直到你不再需要 servinfo ....
freeaddrinfo(servinfo); // 釋放這個鏈結串列Last updated