同一台及其不同IP(127.0.0.1和192.168.1.100)不同结果

senmy 2006-01-14 10:39:13
socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);方式创建socket,向本机其他程序发送IP地址写为127.0.0.1就可以收到,IP地址写为192.168.1.100就收不到,为什么?后一种情况recvfrom阻塞不返回。
...全文
303 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
penu 2006-01-14
  • 打赏
  • 举报
回复
使用localhost或127.0.0.1系统不会做网卡数据发送动作,数据直接做系统接收动作,而使用192.x.x.x等IP时要求网卡配置正确且有正确连接在网络上才行。
tanlim 2006-01-14
  • 打赏
  • 举报
回复
你上面说的不返回-1等错误代码的情况。个人认为确实属于网络性防火墙的问题。防火墙截取到数据包,但未做处理,即(即没有允许,也没有说禁止)这种情况,就会一直要等到超时才会退出。
senmy 2006-01-14
  • 打赏
  • 举报
回复
如果我设127.0.0.1调用recvfrom即使收不到数据包也会返回,只不过返回值为-1,但用192.168.1.1调用recvfrom则进去就不出来了,形成阻塞,能否给解释。
tanlim 2006-01-14
  • 打赏
  • 举报
回复
楼主讲得是本身这台机器配置的IP为192.168.1.100
通常是有这个非程序性问题的。127.0.0.1是默认本机地址,虽然它是以IP方式实现的内部循环,但是与通常的IP的实现有一些区别的.使用常规192.128.1.100这样的IP一定要确认多机联网的情况下才能实现,也就是说如果你只是一台单机,而没有超过两台以上的IP设备联网的话,操作是不正确的。
sfengnet 2006-01-14
  • 打赏
  • 举报
回复
192.168.1.100 这个IP存在吗? 或者 这个IP有没有防火墙?

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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