【发布时间】:2022-01-16 10:33:31
【问题描述】:
我有一个套接字编程任务来构建客户端/服务器聊天。当我在终端中键入 3 值时,我的代码有效,但问题是我想不出一种方法将它们全部作为可选参数并在下面的任何示例中设置一些默认值,
./Client./Client username./Client username portNumber./Client username portNumber serverAddress
int
main (int argc, char *argv[])
{
connection_info connection;
fd_set file_descriptors;
if (argc =! 4)
{
fprintf (stderr, "Usage: %s <IP> <port> <Name>\n", argv[0]);
exit (1);
}
connect_to_server(&connection, argv[1], argv[2], argv[3]);
}
关于默认值,我只需要用户名是“Anynamous”,ip是“localhost”,而端口是3000
【问题讨论】:
-
当
(argc == 3 )时,你想怎么打电话给connect_to_server()?您希望 serverAddress 的默认值是多少? -
char username[100] = "fooy"; if(argc >= 2) strncpy(username, argv[1], 99); -
我更改了您问题的标签:仅仅因为您的程序恰好使用线程并不意味着使用“多线程”标签是合适的。仅当您对多线程不了解时,才应使用该标签。 “unix”标签和“chat”标签也是如此。您的问题是关于 C 程序如何理解其命令行参数。
-
非常感谢@SolomonSlow 对这个问题的反馈。这是第一次来,下次会更好。
-
非常感谢您的回复@chux-ReinstateMonica,关于默认值,我希望用户名是“Anynamous”,ip 是“localhost”,而端口是 3000。
标签: c command-line command-line-arguments