【问题标题】:C Programming - Command Line Arg - Trying to take an IP AddressC 编程 - 命令行参数 - 尝试获取 IP 地址
【发布时间】:2012-01-09 07:04:04
【问题描述】:

我们的任务是建立一个服务器-客户端模型......

我们应该检查命令行arg,如果没有(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.");
    }
}

【问题讨论】:

  • 如果您真的想打印任意字符串来测试输出,请使用一些无害的文本,例如单词“Test”。教你的电脑说脏话可不好,这里也可能会冒犯一些观众。
  • @BoltClock:如果您在代码中不够礼貌(有足够多的 PLEASE),INTERCAL 编译器将拒绝编译您的程序,尽管我不知道它是否会对淫秽内容做出负面反应。

标签: c ip argv argc


【解决方案1】:

在 printf 之后添加一个 fflush。正在缓冲您的欢迎信息。在要打印的字符串的末尾放置一个换行符可能就足够了。

【讨论】:

  • 谢谢,fflushing stdout 工作得很好,现在我终于可以测试我的程序了 =D。对于那些抱怨我的明显不满的人,道歉=P
猜你喜欢
  • 1970-01-01
  • 2021-10-02
  • 2017-12-05
  • 1970-01-01
  • 1970-01-01
  • 2011-06-13
  • 2014-03-01
  • 1970-01-01
相关资源
最近更新 更多