2
我想設置本地主機的名稱。我使用sethostname()函數,但我得到一個錯誤如下:未找到sethostname標識符錯誤
error C3861: 'sethostname': identifier not found.
下面的代碼片段:
WSADATA wsa;
///Initialise winsock///
if (WSAStartup(MAKEWORD(2,2),&wsa) != 0)
{
//Socket Initialization Failed///
exit(EXIT_FAILURE);
}
char setname[128]="Ayesha-PC";
sethostname(setname, sizeof (setname));
你確定'sethostname'存在於桌面winsock上嗎?我可以看到它[記錄爲WinCE](http://msdn.microsoft.com/en-us/library/aa450918.aspx),但它不出現在[桌面winsock2函數列表](http:// msdn.microsoft.com/en-us/library/windows/desktop/ms741394(v=vs.85).aspx) – simonc 2013-04-11 10:11:58
我認爲這是問題所在。是否有任何其他可以設置主機名的桌面winsock功能? :( – Ayse 2013-04-11 10:13:44
@AyeshaHassan你的主機名以及它在你的NAT上註冊的方式可能是不同的......假設你有兩臺單一NAT(你的連接)名字相同的計算機,那麼你認爲它們可以共享同一個名字嗎?表他們註冊一些其他的名字,例如第一個'Ayesha-PC-1'第二''Ayesha-PC-2'。使用你的IP你可以退休你的主機名讀取關於[getaddrinfo函數](http://msdn.microsoft.com /en-us/library/windows/desktop/ms738520(v=vs.85).aspx)和其他相關函數來檢索名稱。你需要'IP'來'name'翻譯函數一個DNS問題..一個有趣的Q + 1. – 2013-04-11 10:30:16