关于《Unix网络编程》在ubuntu 8.04下运行的问题,服务器端阻塞在accept调用,客户端阻塞在connect调用,导致连接失败

九天雁翎 2009-02-15 09:05:00
我没有在其他linux环境下运行测试,所以,也不知道是否仅仅是ubuntu 8.04的问题,或者是所有linux的问题(应该不会)
原《Unix网络编程》的源代码编译可以通过,服务器端运行,通过netstat -a也可以看到listen的状态,但是就是客户端connect的时候,死活不会成功。
郁闷到极点,是否是有一些相关的配置有问题?暂时我不怀疑《Unix网络编程》的源代码有问题。
另外,作为测试,我特意将原来的daytime服务器端在windows下实现了一个,通过ubuntu 8.04下的客户端来连接windows下的服务器,又非常正常,并且
发包收到都成功了,请有经验的人指点一下,大概可能是什么问题,因为我实在是没有什么头绪
最后再加上几个本人的机器环境
E2160,ubuntu 8.04,两台电脑,在XP下通过putty登陆Linux编程(通过交换机自己组建局域网,但是这个局域网又是通过一个路由器上外网)
用gdb调试可以发现,服务器端阻塞在accept调用,客户端阻塞在connect调用,过很长时间,客户端连接失败
...全文
450 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
九天雁翎 2009-02-16
  • 打赏
  • 举报
回复
奇怪的是,我以前学习apue和bash的时候,感觉这个linux挺好用的,为什么学习《unix网络编程》的时候,随便弄个程序都运行不成功-_-!给我郁闷坏了
九天雁翎 2009-02-16
  • 打赏
  • 举报
回复
guosha,我的Ubuntu 8.04本来没有service命令,我通过安装sysvconfig包后有了这个service命令,
但是运行你的命令后,输出iptables: unrecognized service,似乎一开始iptables这个服务就没有启动
九天雁翎 2009-02-16
  • 打赏
  • 举报
回复
我倒是尝试用tcpdump去抓包-_-!但是不太会用,用netstat的效果就是服务器端可以正常监听,但是客户端连不上,
同样的代码,我经过修改,然后在windows下却又可以,哪怕是由linux连接上windows下的服务器都可以-_-!
我还是先试试guosha的办法先,谢谢大家了,我这里是用终端,没有X Window,所以没有办法用wireshark....
zhouwenliangking 2009-02-16
  • 打赏
  • 举报
回复
试试!!!!!!!!
challenge99 2009-02-16
  • 打赏
  • 举报
回复
先在一台机器上测试吧, 我用的也是ubuntu8.04, 然后也是那本书上的代码, 但是没有任何的问题


推荐一个工具:wireshark, 可以抓包分析连接失败的具体原因
快乐田伯光 2009-02-15
  • 打赏
  • 举报
回复
service iptables stop后试一试吧,
九天雁翎 2009-02-15
  • 打赏
  • 举报
回复
我主要是学编程,所以对配置linux不是太了解-_-!的确有很多配置都不知道,防火墙配置是默认的,ubuntu 8.04的服务器版本
但是不像是connect包的阻塞问题,因为我用linux的客户端程序去connect windows下编译的服务器没有问题
九天雁翎 2009-02-15
  • 打赏
  • 举报
回复
源码就是Unix网络编程中的源码,我没有进行任何修改,可以编译运行,但是就是connect不成功,我将同样的代码移植到windows就完全没有问题,这点比较奇怪
(事实上我测试了很多例子,从tcp到udp的都不行。
快乐田伯光 2009-02-15
  • 打赏
  • 举报
回复
是不是你linux的防火墙把connect包给阻塞了?
  • 打赏
  • 举报
回复
能帖帖你有问题的源码不?

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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