我从服务器到客户端制作这个简单的例子,服务器作为echo服务器运行!因此,客户端从用户获取输入并将其发送到服务器,然后服务器将其发回。
我只是停留在用户的输入上。我使用了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);
答案 0 :(得分:1)
第一次输入后,你调用recv()
,它会阻塞,直到有一些数据要读,你的客户端没有读取任何数据,所以没有任何反应。您需要检查您的echo服务器以找出错误。如果您需要使用echo服务器来测试客户端,则可以使用服务器here的代码。