日期:2014-05-16  浏览次数:20532 次

linux下如何利用socket测试服务器是否可达?
需求如下:
我在linux机器下开了一个MemCached服务器,地址是:192.168.190.12:11211
现在要使用一种机制来判断该服务端口是否开启。。。

网上很多帖子都是使用:
connect + select方式来测试~

这个方法在windows下行得通,在win下面只要select返回 1 就表示服务开启;
但是在linux下,我服务关闭了,select仍然会返回 1 
所以,不能由select返回1来判断服务是否开启...


跪求大虾们打救!!!

------解决方案--------------------
这是非阻塞connect,select可写事件,getsockopt SO_ERROR根据返回值与传入参数的返回值判断是否错误。
------解决方案--------------------
现在要使用一种机制来判断该服务端口是否开启
如果端口关闭了,connect不会失败吗
------解决方案--------------------
端口关闭打印error 肯定是 connection refused
------解决方案--------------------
在linux下也可以connect+select