printf ничего не возвращает на экран - PullRequest
0 голосов
/ 31 марта 2020

У меня проблемы с программированием на C языке. Я скомпилировал программу, которая сканирует открытые порты на IP-адресе, заданном пользователем, и она должна отображаться на экране, когда порт открыт. Проблема в том, что он ничего не печатает! Программа запускается, но на экране ничего не отображается.

#include <stdio.h>          // printf(), perror()
#include <sys/types.h>      // AF_INET, SOCK_STREAM
#include <sys/socket.h>     // socket(), connect()
#include <arpa/inet.h>      // htons(), inet_addr()
#include <unistd.h>         // close()

int main(int argc, char *argv[])
{
    int meusocket;
    int conecta;

    int port;
    int inicio = 0;
    int final = 65535;
    char * destino;
    destino = argv[1];

    struct sockaddr_in alvo;

    if(argv[1] == "")
    {
        printf("Informe o IP de acordo com o exemplo: \n");
        printf("./portscan 192.168.100.1");
        close(meusocket);
        return 0;
    }else{

    for(port=inicio;port<final;port++)
    {

    meusocket = socket(AF_INET, SOCK_STREAM, 0);
        alvo.sin_family = AF_INET;
        alvo.sin_port = htons(port);
        alvo.sin_addr.s_addr = inet_addr(destino);

        conecta = connect(meusocket, (struct sockaddr *)&alvo, sizeof alvo);

        if(conecta == 0)
        {
            printf("Porta %i [ABERTA] \n",port);
            close(meusocket);
            return 0;
        }else{
            close(meusocket);
            return 0;
        }

    }
    }
}    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...