Chinaunix首页 | 论坛 | 博客
  • 博客访问: 201671
  • 博文数量: 42
  • 博客积分: 2216
  • 博客等级: 大尉
  • 技术积分: 440
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-11 19:38
文章分类

全部博文(42)

文章存档

2013年(1)

2011年(9)

2010年(23)

2009年(9)

我的朋友

分类: LINUX

2010-08-13 13:11:18

    明明是按照linux socket programming by example上的例子写的啊,server和client在一台机器上就没有问题,怎么一分开就木有反应了?dgramclnt应该是处于recvfrom阻塞的状态,server呢?大概没有收到?否则也不能如此绝情啊。
    看到有人说udp也可以用connect的,面向连接的UDP,这样如果连接不上,kernel会返回错误给用户,而不是像无连接一样光是痴痴地等。在dgramclnt.c中connect到server, 运行之,有反应了!但仔细一看才发现是出错信息:No route to host. 果然验证了自己的猜想,client的消息果然没有被送到,不握手就是不行啊,送到送不到都不能确定。那为啥送不到呢?明明可以ping通,并且我还用ssh远程登录了那台电脑,网络没问题啊!困惑
    继续搜索,尝试...
    看到一个貌似靠谱的原因:防火墙!我原来都不知道Linux默认还开着防火墙,平时也接触不到。看来需要补补这方面的知识了。
    使用service iptables stop 关闭服务器端机器的防火墙,连接测试,成功!成功收到来自大洋彼岸(实验室另一台电脑)发回的消息!
    呦西,不错嘛~

   
阅读(1009) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~