Программирование на C - Аргумент командной строки - Попытка получить IP-адрес

Наша задача - иметь клиент-серверную модель....

Мы должны проверить наличие аргумента командной строки, если его нет (argc = 1), мы настраиваем его как сервер. в противном случае мы используем argv[1] для настройки клиентского сокета...

Кажется, все работает нормально, если я просто использую случайность в качестве аргумента, но когда я пытаюсь ввести адрес, например, 1.2.3.4, он не дает никакого вывода, просто запускает программу и ничего не делает.

Я предполагаю, что мой вопрос заключается в том, как лучше всего обрабатывать аргумент командной строки в виде IP-адреса.

Вот моя основная функция.

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

    printf("%i",argc);
    if(argc==1)
    {
            printf("Welcome to the ZOG Virtual Probe Game!  You have choosen to take the role of a server.");
            printf("\nPlease wait for an opponent to connect.");
            runServer();
    }else if(argc==2)
    {
            printf("Welcome to the ZOG Virtual Probe Game!  You are now connecting to specified IP.");
            runClient(argv[1]);
    }else
    {
            printf("You used an invalid command line argument. You can input an IP address or leave no command arg to host a game.");
    }
}

person ChrisB92    schedule 29.11.2011    source источник
comment
Если вы действительно хотите напечатать произвольную строку для проверки вывода, используйте какой-нибудь безобидный текст, например слово Test. Нехорошо учить свой компьютер ругаться матом, и здесь это тоже может оскорбить некоторых зрителей.   -  person BoltClock    schedule 30.11.2011
comment
@BoltClock: компилятор INTERCAL откажется компилировать вашу программу, если вы недостаточно вежливы в своем коде (с достаточным количеством ПОЖАЛУЙСТА), хотя я не знаю, реагирует ли он негативно на непристойности.   -  person Adam Rosenfield    schedule 30.11.2011


Ответы (1)


Добавьте fflush после printf. Ваше приветственное сообщение буферизуется. Может быть достаточно просто поместить новую строку в конце печатаемых строк.

person William Pursell    schedule 29.11.2011
comment
Спасибо, fflushing stdout сработал отлично, теперь я наконец-то могу протестировать свою программу =D. А тем, кто жалуется на мою явную неудовлетворенность, приношу свои извинения =P - person ChrisB92; 30.11.2011