我試圖編寫一個谷歌本地客戶端(pNacl)模塊。 客戶端應該從遠程服務器獲取一些數據。
從模塊調用該函數可以正常工作。
我剛剛起步,無法讓客戶端發送任何數據。即使是getaddrinfo的IP地址的非常基本的查找也不起作用。
當我使用wireshark轉儲網絡流量時,可以看到沒有數據包正在發送。 errno指的是getaddrinfo與「功能未實現」。即使這個簡單的代碼也行不通。它可以作爲獨立的客戶端工作,而不是作爲本地客戶端模塊。
該瀏覽器還提供了一個錯誤:
** 4的信號不可信代碼:PC = 6d98000b3360pNaCl UDP客戶端getaddrinfo函數未實現 - 不受信任的代碼
沒有任何人有什麼線索,我做錯了什麼?
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <netdb.h>
#include <errno.h>
void foo(){
int rc;
struct addrinfo hints, *info;
memset(&hints, 0, sizeof(hints));
hints.ai_socktype = SOCK_DGRAM;
hints.ai_family = AF_INET;
fprintf(stderr, "Trying: www.google.com\n");
rc = getaddrinfo("www.google.com", "80", &hints, &info);
if(rc != 0) {
fprintf(stdout, "getaddrinfo: %s\n", gai_strerror(rc));
fprintf(stdout, "Error: %s\n", strerror(errno));
}
freeaddrinfo(info);
}