是否有发送的fprintf?

时间:2010-09-07 01:07:56

标签: c sockets

很可能是一个菜鸟问题,但我正在寻找一个printf - esque函数,用于send通过TCP套接字。这是一个简单的聊天服务器,特别是Beej的套接字指南中的一个修改版本。我准备写自己的,但在此之前,我想确保我不会重新发明轮子。

我正在寻找C本地的东西,而不是库或其他东西。我这样做是为了一种智力上的追求,使用现成的图书馆并不会教会我,也不会搞砸,直到我弄清楚并理解为什么。

提前感谢任何回答的人!

编辑: 我目前正在使用:

if(current_user->fs_id == sending_user->fs_id) {
    snprintf(server->current_buffer, buffer_size, "You said: %s", message);
} else {
    snprintf(server->current_buffer, buffer_size, "%s said: %s", sending_user->name, message);
}

if(send(current_user->fs_id, server->current_buffer, buffer_size, 0) == -1) {
    perror("Sending data");
}

我知道这不是最好的方法,这是我现在正在解决的问题。

2 个答案:

答案 0 :(得分:5)

使用fdopen制作与套接字对应的FILE *,然后fprintf写入套接字。

答案 1 :(得分:1)

我假设您将snprintf(比sprintf更安全)放入缓冲区并send使用... {/ p>

当然,你可以将它包装在一个很好的小变量函数中。