2013-12-11 2 views
0

나는 주어진 포트가 열려 있거나 닫혀 있는지 확인하는 C++ 프로그램을 가지고있다. 내가하려는 것은 네트워크의 어떤 IP가 어떤 장치인지 확인하는 것입니다. 내가 함수 port_is_open 프로그램을 붙어 그 위에 어떤 장치가없는 일부 IP를 확인할 때아무 것도 반환하지 않는 C++ 멈춤 함수

#include <iostream> 
#include <SFML/Network.hpp> 
#include <string> 

static bool port_is_open(const std::string& address, int port) 
{ 
    return (sf::TcpSocket().connect(address, port) == sf::Socket::Done); 
} 

int main() 
{ 
    std::cout << "Port 80 : "; 


    if (port_is_open("localhost", 80)) 
     std::cout << "OPEN" << std::endl; 
    else 
     std::cout << "CLOSED" << std::endl; 
    return 0; 
} 

내 문제는 다음과 같습니다

이 내 코드입니다. 특정 시간에 응답을받지 못하면 누가 그 기능을 멈출 수 있습니까?

Status connect (const IpAddress &remoteAddress, unsigned short remotePort, Time timeout=Time::Zero) 

그냥 세 번째 인수를 제공하고 자체를 연결 중지해야합니다

+1

SFML 라이브러리에 따라 다릅니다. 해당 문서에서 connect()에 대한 제한 시간 형태를 살펴보십시오. – dutt

답변

4

여기 connect() 선언입니다.

+0

tryed하지만 오류가 발생합니다. 대신이 일을했지만 기능이 끝나지 않습니다 .. 정적 bool port_is_open (const std :: string & address, int port) { sf :: Time timeout = sf :: Time :: Zero; return (sf :: TcpSocket(). connect (address, port, timeout) == sf :: Socket :: Done); } – z4k4

관련 문제