Есть ли fprintf для отправки? - PullRequest
       1

Есть ли fprintf для отправки?

1 голос
/ 07 сентября 2010

Скорее всего, вопрос новичка, но я ищу функцию 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 ]

5 голосов
/ 07 сентября 2010

Используйте fdopen для создания FILE *, соответствующего сокету, затем fprintf для записи в него.

1 голос
/ 07 сентября 2010

Я предполагаю, что вы будете использовать snprintf (безопаснее, чем sprintf) в буфере и send, что ...

Конечно, вы можете обернуть это в милую маленькую функцию variadac.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...