gpt4 book ai didi

c - scanf() 在 ENTER 后不起作用

转载 作者:行者123 更新时间:2023-11-30 15:36:38 26 4
gpt4 key购买 nike

我正在制作一个从服务器到客户端的简单示例,其中服务器充当回显服务器!因此,客户端从用户获取输入并将其发送到服务器,然后服务器将其发送回来。

我刚刚陷入了用户输入的困境。我使用了 getchar、scanf 和 fgets 之类的东西。但是当我开始输入并按 ENTER 键时,它应该继续到程序中的下一个内容......遗憾的是,这并没有发生。

这是我的消息部分代码:

while(1)
{
char message[1000], servermessage[1000];

printf("You: ");
scanf("%s", message);
printf("%s\n", message);

if (send(sock, message, strlen(message), 0) < 0)
{
printf("sending failed\n");
return (EXIT_FAILURE);
}

int received = recv(sock, servermessage, sizeof(servermessage), 0);
if (received < 0)
{
printf("received failed\n");
return (EXIT_FAILURE);
}

servermessage[received] = '\0';
printf("Server: %s\n", servermessage);
}

close(sock);

最佳答案

第一次输入后,你调用recv(),它会阻塞,直到有一些数据要读取,你的客户端没有读取任何数据,所以什么也没有发生。您需要检查您的回显服务器以找出问题所在。如果你需要一个 echo 服务器来测试你的客户端,你可以使用服务器 here 的代码.

关于c - scanf() 在 ENTER 后不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22507261/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com