C客户端/服务器与fprintf通信?

时间:2011-06-09 17:03:00

标签: c sockets client printf

如何使服务器能够使用printf或fprintf而不是使用write系统调用向客户端发送消息?

我已经完成了我的服务器制作和工作,通过写入发送消息,但我宁愿使用fprintf。

例如,这不起作用:

newsockfd = accept(sockfd,(struct sockaddr *) &cli_addr, &clilen);
FILE *fp = fdopen(newsockfd, "w");
fprintf(fp, "test"); 
fflush(fp);

我知道有一个新问题。当我只有上面的代码它工作,我可以在我的浏览器中看到它,但是如果我添加读取(newsockfd,缓冲区,255)之后我会更长时间看到我的客户端发布的消息。

2 个答案:

答案 0 :(得分:2)

FILE上运行的函数不太可能按照您的期望在处理套接字时执行,并且很可能会让您感到困惑。如果你想实现格式化,我建议你滚动自己的格式化函数来写入套接字:你需要做的就是创建一个可变参数函数,调用格式化vsprintf并用{发送结果{1}}或write ...

答案 1 :(得分:0)

如何使用dup系统调用,所以将stdout重定向到套接字描述符..所以我认为你可以使用printf将你的东西放在socket中。

相关问题