诸位帮忙看看这段代码有什么毛病?

sunriselx 2001-01-11 03:15:00
接受端:
{
struct sockaddr_in addr;
SOCKET s;

s=socket(AF_INET,SOCK_DGRAM,0);

memset(&addr,0,sizeof(addr));
addr.sin_family=AF_INET;
addr.sin_port=htons(8000);
addr.sin_addr.s_addr=htonl(INADDR_ANY);

bind(s,(SOCKADDR*)&addr,sizeof(addr));
HWND hWnd=AfxGetMainWnd()->GetSafeHwnd();
WSAAsyncSelect(s,hWnd,UM_SOCK,FD_READ|FD_WRITE);
}
bind和wsaasyncselect的返回值都没错。

发送端:
{
SOCKADDR_IN addrTo;
SOCKET s;

s=socket(AF_INET,SOCK_DGRAM,0);
HWND hWnd=AfxGetMainWnd()->GetSafeHwnd();
WSAAsyncSelect(s,hWnd,UM_SOCK,FD_READ|FD_WRITE);

char sBuf[1024];
sprintf(sBuf,"hello!");

memset(&addrTo,0,sizeof(addrTo));
addrTo.sin_family=AF_INET;
addrTo.sin_port=htons(8000);
addr.sin_addr.s_addr=inet_addr("202.112.145.73");

int ret=sendto(s,sBuf,6,0,(SOCKADDR*)&addrTo,sizeof(addrTo));
if(ret==SOCKET_ERROR)
{
CString s;
s.Format("%d",WSAGetLastError());//s为100049
AfxMessageBox(s);
}
}
sendto发生错误,错误码:100046(不能分配请求的地址)
小弟初学,很肤浅,请各位高手看看有什么毛病,我实在是没办法了。
...全文
182 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunriselx 2001-01-11
  • 打赏
  • 举报
回复
to bugn:
谢谢,真的是写错了,真笨,没仔细看,我以为是sin_addr.s_addr=inet_addr("202.112.145.73")的语法错了呢,研究了半天。我记得你还回答了我的关于winsock与csocket的问题,我受益不少,以后由问题还得请教你,再次感谢。
taolei 2001-01-11
  • 打赏
  • 举报
回复
你的代码我试了一下,除了IP地址不同外,其他没动。可以运行。应该还是IP的问题。
bugn 2001-01-11
  • 打赏
  • 举报
回复
小问题,肯定是 addr.sin_addr.s_addr=inet_addr("202.112.145.73");写错了
改成 addrTo.sin_addr.s_addr=inet_addr("202.112.145.73");

呵呵,如果addrTo.sin_addr.s_addr是0的话,肯定出10049的
sunriselx 2001-01-11
  • 打赏
  • 举报
回复
各位帮我看看,为什么sendto返回错误呢?
hatname 2001-01-11
  • 打赏
  • 举报
回复
to joyle:

用数据报可以不绑定。
用的是SOCKET用完后应该CLOSE,
joyle 2001-01-11
  • 打赏
  • 举报
回复
发送端同样需要bind
sunriselx 2001-01-11
  • 打赏
  • 举报
回复
to adrianx:
服务器是我这的另一台机器,肯定开了,是教育网,可能你ping不了
adrianx 2001-01-11
  • 打赏
  • 举报
回复
202.112.145.73的地址不对
是不是服务器没有开
我Ping 202.112.145.73 没有响应

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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