좋아, 우선 내가하고있는 일은 완전히 윤리적이며 네, 포트 스캔입니다.소켓 시간 초과 C++ Linux
포트가 열려있을 때 프로그램이 제대로 실행되지만 닫힌 소켓에 도달하면 시간 제한 절이 없어 프로그램이 매우 오랫동안 중지됩니다. 아래는 내가 스택 오버 플로우에서 이걸 발견 다음 코드
int main(){
int err, net;
struct hostent *host;
struct sockaddr_in sa;
sa.sin_family = AF_INET;
sa.sin_port = htons(xxxx);
sa.sin_addr.s_addr = inet_addr("xxx.xxx.xxx.xxx");
net = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
err = connect(net, (struct sockaddr *)&sa, sizeof(sa));
if(err >= 0){ cout << "Port is Open"; }
else { cout << "Port is Closed"; }
}
하지만 그것은 단지 select() 명령을 사용하여 나에게 이해가되지 않습니다.
질문 connect() 함수의 시간 제한을 설정하여 오류가 발생하기까지 1 년을 기다릴 수 있습니까?
필요가 없습니다에 대한 링크 - 그것은 은행 및 강탈 그것에 돈을 인출 싶어하지 않는 것이 설명 할 때마다가는 길을 묻는처럼 .. – stefanB
: 멋지게 넣습니다. 그러나 돈을 인출하는 것은 아무 것도 없습니다 : D –