【发布时间】:2014-03-19 13:23:31
【问题描述】:
我正在做这个从服务器到客户端的简单示例,其中服务器充当回显服务器!因此,客户端从用户那里获取输入并将其发送到服务器,然后服务器将其发回。
我只是卡在用户的输入上。我使用了 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);
【问题讨论】:
-
scanf()之后发生了什么? -
我喜欢一直打字……它永远不会停止……它就像我的标准输入一样!
-
我认为因为你在一个while循环中,它似乎总是卡在scanf但它真的没有,你试过gdb吗
-
所以您的问题不是“从客户端发送消息到服务器”而是“scanf 不起作用 ”,不是吗?
-
是的,有点……哎呀!我尝试调试,但我不会再进一步扫描 f...