读书人

怎么测试对方端口是否可用

发布时间: 2012-01-31 21:28:41 作者: rapoo

如何测试对方端口是否可用?
我有一组IP地址,现在想测试这些IP中的某个端口是否可用? (该IP也有可能不在线了)

[解决办法]
简单的用telnet ip port,写一个批处理就可以了

要在VC中编程实现就用 tcp socket,connect端口,wsagetlasterror(),设置为非堵塞模式就可以了
[解决办法]
在你调试程序前,建议你telnet ip 9898看是否能连接,
观察以下情况
1。正常连接上,可以通过键盘发出数据
2。正常连接上,但立刻被remote主机中断
3。连接不上。说明端口确实不可用

仅仅判断返回值,是不足以确定的

m_sock.Create();
if( m_sock.Connect(mReader[i].m_strIP,9898) )
{
成功;
}
else{
int errorcode=GetLastErro();
if (errorcode==WSAEWOULDBLOCK)
{
//当socket是非堵塞的,那么会有OnConnect消息被相应,在这个消息响应函数里你可以确定是否连接上,然后再断开,去连接下一个IP和端口,不要直接循环
}
else
{
// 失败;建议这里取得errorcode来判断具体的代码
}
}


[解决办法]
因为你该IP没有绑定服务器,你的对端机器不是服务器。你本机只是客户端。肯定连不上
[解决办法]
remote ip 远端主机如果没有在这个IP和端口上进行监听,何来可用,所谓IP在线,只是你用ping发icmp包,与端口无关
[解决办法]
socket (AF_INET,SOCK_RAW,IPPROTO_ICMP);
指定套接字为原始套接字,和ICMP协议,然后按照ICMP协议封包,sendto,
你可以搜索一下。类似代码很多的

读书人网 >VC/MFC

热点推荐