找不到sethostname标识符错误

时间:2013-04-11 10:01:38

标签: c windows winapi network-programming udp

我想设置本地主机的名称。我正在使用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));

1 个答案:

答案 0 :(得分:4)

Windows使用它自己的机制来设置主机名。您使用的功能是SetComputerNameSetComputerNameEx

更改将在下次重新启动时生效。您可以使用ExitWindowsEx请求重新启动。

你需要拥有管理员权限来调用这些例程,重启要求的原因是因为很多windows子系统在启动后都不会检查主机名并且会继续使用旧名称(这类似于Linux的);它也可能对域中的DNS产生影响。