急救啊, 为什么用gethostname不能得到主机名字?

lyleliu 2003-11-12 11:47:11
这是我的源码, 编译没有错误, 但是执行的时候会提示你,某处内存不能为读, 我调试了一下, 发现gethostname不能得到主机名字,因此gethostbyname也不能返回本机ip地址, 哪位好心人帮忙看一下啊。
char name[40];
int nameLen = 40;
gethostname(name, nameLen);
struct hostent FAR* ip;
ip = gethostbyname(name);
char strAddr[40];
for(int i = 0; i<ip->h_length; i++)
{
char temp[40];
sprintf(temp, "%d.", *(BYTE*)ip->h_addr_list[0] + i);
strcat(strAddr, temp);
}
...全文
122 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
csdnzhu 2003-11-12
  • 打赏
  • 举报
回复 1
缺少WSAStartup()
哈哈,我前天刚问过这个问题
WORD wVersionRequested;// 定义版本信息变量
WSADATA wsaData;//定义数据信息变量
int err;//定义错误号变量
wVersionRequested = MAKEWORD(1,1);//给版本信息赋值
err = WSAStartup(wVersionRequested, &wsaData);//给错误信息赋值
if(err!=0)
{
return;//告诉用户找不到合适的版本
}
mingcedar 2003-11-12
  • 打赏
  • 举报
回复
是不是缺少WSAStartup()
lyleliu 2003-11-12
  • 打赏
  • 举报
回复
不缺少WSAStartup(), 我在Initinstance中有如下代码: int err = -1;
WSADATA wsaData;
err = WSAStartup(MAKEWORD(1,1),&wsaData);
if(err != 0)
{
AfxMessageBox("cann't initialize ");
return FALSE;
}
if(LOBYTE(wsaData.wVersion) != 1 || HIBYTE(wsaData.wVersion) != 1)
{
AfxMessageBox("do not support the suposed version");
WSACleanup();
}

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧