LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: hkdjining

linux下socket编程中客户端收不到信息

[复制链接]
 楼主| 发表于 2006-3-28 11:58:00 | 显示全部楼层
我按照4楼的大侠改了timeserv.c,在两台机器上都在后台运行timeserv,其中一台机器ip地址211.84.93.254,一台211.84.93.253,在253那台机器上运行./timeclnt 211.84.93.254 13000,能够得到运行结果:The time here is ..Tue Mar 28 11:44:32 2006
但是在254那台机器上运行./timeclnt  211.84.93.253 13000出现:
[root@fcy fcy]# ./timeclnt 211.84.93.253 13000
connect: No route to host
用hostname运行,出现
[root@fcy fcy]# ./timeclnt_old FC2 13000
FC2: Success
但在253那台机器上运行timeclnt,用hostname也不行,结果如下:
[root@FC2 bookcode]# ./timeclnt fcy 13000
fcy: Success
我在另一台ip为250的机器上运行timeserv,然后在253机器上运行:
[root@FC2 bookcode]# ./timeclnt_old 211.84.93.250 13000
connect: No route to host
不知道为什么访问254那台机器可以得到正常运行结果,而其他机器不行那?都能相互ping 通
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-28 11:58:28 | 显示全部楼层
我按照4楼的大侠改了timeserv.c,在两台机器上都在后台运行timeserv,其中一台机器ip地址211.84.93.254,一台211.84.93.253,在253那台机器上运行./timeclnt 211.84.93.254 13000,能够得到运行结果:The time here is ..Tue Mar 28 11:44:32 2006
但是在254那台机器上运行./timeclnt  211.84.93.253 13000出现:
[root@fcy fcy]# ./timeclnt 211.84.93.253 13000
connect: No route to host
用hostname运行,出现
[root@fcy fcy]# ./timeclnt_old FC2 13000
FC2: Success
但在253那台机器上运行timeclnt,用hostname也不行,结果如下:
[root@FC2 bookcode]# ./timeclnt fcy 13000
fcy: Success
我在另一台ip为250的机器上运行timeserv,然后在253机器上运行:
[root@FC2 bookcode]# ./timeclnt_old 211.84.93.250 13000
connect: No route to host
不知道为什么访问254那台机器可以得到正常运行结果,而其他机器不行那?都能相互ping 通
回复 支持 反对

使用道具 举报

发表于 2006-11-1 17:05:43 | 显示全部楼层
代码怎么打不开?
回复 支持 反对

使用道具 举报

发表于 2006-11-2 11:58:03 | 显示全部楼层
借人气提问: 如果客户端和服务器端始终保持连接状态, 但是突然客户端关闭连接(或者关机),服务器端怎样能及时发现客户端连接断开,并做出相应的处理呢?
回复 支持 反对

使用道具 举报

发表于 2006-11-3 16:51:35 | 显示全部楼层
Post by leanlay
借人气提问: 如果客户端和服务器端始终保持连接状态, 但是突然客户端关闭连接(或者关机),服务器端怎样能及时发现客户端连接断开,并做出相应的处理呢?

看unix网络编程,里面对这方面讲的比较详细,我正在看;
你说的这个功能好像是要设置TCP的一个选项KeepAlive,服务器端就会定时通过发送TCP数据包给客户端然后检测ACK,尝试好几次后失败就会自动断开该连接
回复 支持 反对

使用道具 举报

发表于 2006-11-3 17:04:51 | 显示全部楼层
to lz,你用的是stdio来对套接字进行操作的吧?
unix网络编程里明确不建议这样的操作,因为stdio有缓存机制,并不会立即发送到客户端,除非缓冲已经被填满了;换一种方法再试试吧;

ps:unix网络编程一开始就有一个简单的daytime服务器和客户端例子,建议lz在网上下载一个电子版看看;
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表