window socket本机地址可以收到 别的地址就收不到

auvpinkie 2013-04-19 02:17:02
涉及发送的内容就是这么写的,看着挺多其实非常简单,就是UDP下的Socket发送,接收端类似

WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 2, 0 );
err = WSAStartup(wVersionRequested, &wsaData );
if ( err != 0 ) {
m_Msg.AddString(_T("Socket2.0初始化失败,Exit!"));
return false;
}
if ( LOBYTE( wsaData.wVersion ) != 2 || HIBYTE( wsaData.wVersion ) != 0 ) {
WSACleanup( );
return false;
}
//以上都不会有错
GetDlgItem(IDC_IP)->GetWindowText(csIP);//MFC,运行时在IDC_IP那里输入IP地址
SOCKET sock;
sock=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);
if (sock == INVALID_SOCKET ) {
m_Msg.AddString(_T("Socket 创建失败,Exit!"));
return;
}
memset(&addrto,0,sizeof(addrto));
addrto.sin_family=AF_INET;
addrto.sin_addr.s_addr=inet_addr(CW2A(csIP));
addrto.sin_port=htons(7861);
/*...*/
sendto(sock,szMsgSend+ii*21,21,0,(sockaddr*)&addrto,sizeof(addrto));

经测试,当输入ip地址为127.0.0.1时可以完全正确的接收,其他地址比如本机IP114.255.*.*就根本收不到 为什么呢
...全文
149 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
tutu_10w 2013-04-20
  • 打赏
  • 举报
回复
打洞
auvpinkie 2013-04-20
  • 打赏
  • 举报
回复
问题似乎是因为网络不好,因为我什么都没改,有时候就能收到。我要结贴,来回复我就给分哦
auvpinkie 2013-04-19
  • 打赏
  • 举报
回复
求助求助 上面还少写一句sockaddr_in addrto;

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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