gethostbyname

ji_angwen 2010-04-08 01:58:07
调用gethostbyname返回错误WSAHOST_NOT_FOUND怎么解决?
...全文
129 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Un1 2010-04-26
  • 打赏
  • 举报
回复
WSAStartup
【天运子】 2010-04-17
  • 打赏
  • 举报
回复
先获得本机主机名,pHost=gethostbyname(strHostName);
strHostName应该是主机名吧,你好像是写进去的
用char HostName[100];
gethostname(HostName, sizeof(HostName));// 获得本机主机名.
试试不知有没有用对你
ji_angwen 2010-04-16
  • 打赏
  • 举报
回复
自己顶咯
ji_angwen 2010-04-12
  • 打赏
  • 举报
回复
正常代码:
void CChatDlg::OnBtnSend()
{
// TODO: Add your control notification handler code here
DWORD dwIP;
CString strSend;
WSABUF wsabuf;
DWORD dwSend;
int len;
SOCKADDR_IN addrTo;
((CIPAddressCtrl*)GetDlgItem(IDC_IPADDRESS1))->GetAddress(dwIP);
addrTo.sin_addr.S_un.S_addr=htonl(dwIP);
addrTo.sin_family=AF_INET;
addrTo.sin_port=htons(6000);

GetDlgItemText(IDC_EDIT_SEND,strSend);
len=strSend.GetLength();
wsabuf.buf=strSend.GetBuffer(len);
wsabuf.len=len+1;

SetDlgItemText(IDC_EDIT_SEND,"");

if(SOCKET_ERROR==WSASendTo(m_socket,&wsabuf,1,&dwSend,0,(SOCKADDR*)&addrTo,sizeof(SOCKADDR),NULL,NULL))
{
MessageBox("发送数据失败!");
return;
}
}
加了if-else语句后的错误代码:
void CChatDlg::OnBtnSend()
{
// TODO: Add your control notification handler code here
DWORD dwIP;
CString strSend;
WSABUF wsabuf;
DWORD dwSend;
int len;
SOCKADDR_IN addrTo;
CString strHostName;
HOSTENT *pHost;


if(GetDlgItemText(IDC_EDIT_HOSTNAME,strHostName),strHostName=="")
{
((CIPAddressCtrl*)GetDlgItem(IDC_IPADDRESS1))->GetAddress(dwIP);
addrTo.sin_addr.S_un.S_addr=htonl(dwIP);

}
else
{
pHost=gethostbyname(strHostName);
int nihao=WSAGetLastError();
CString str;
str.Format("%d",nihao);


if(WSAHOST_NOT_FOUND==nihao)
{
MessageBox("是的1");
}
if(WSATRY_AGAIN==nihao)
{
MessageBox("是的2");
}
if(WSANO_RECOVERY==nihao)
{
MessageBox("是的3");
}

addrTo.sin_addr.S_un.S_addr=*((DWORD*)pHost->h_addr_list[0]);
}


addrTo.sin_family=AF_INET;
addrTo.sin_port=htons(6000);

GetDlgItemText(IDC_EDIT_SEND,strSend);
len=strSend.GetLength();
wsabuf.buf=strSend.GetBuffer(len);
wsabuf.len=len+1;

SetDlgItemText(IDC_EDIT_SEND,"");

if(SOCKET_ERROR==WSASendTo(m_socket,&wsabuf,1,&dwSend,0,(SOCKADDR*)&addrTo,sizeof(SOCKADDR),NULL,NULL))
{
MessageBox("发送数据失败!");
return;
}



}
AIHANZI 2010-04-11
  • 打赏
  • 举报
回复
把你的代码贴出,看下是不是之前的代码错了
ji_angwen 2010-04-08
  • 打赏
  • 举报
回复
我比较笨咯,步骤说详细点,
ji_angwen 2010-04-08
  • 打赏
  • 举报
回复
怎么让它返回正常??
xingworld 2010-04-08
  • 打赏
  • 举报
回复
就是没有找到,DNS 没有返回正确的解析结果
Eleven 2010-04-08
  • 打赏
  • 举报
回复
WSAHOST_NOT_FOUND
Authoritative answer host not found.

18,356

社区成员

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

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