发送更大量的数据

时间:2011-07-18 13:16:11

标签: c sockets

我正在使用 C (linux)中的套接字,我需要通过网络发送更长的文本(60个字符)。我尝试过一个char指针,但它太短了。任何建议我应该使用什么?

char *data = "A lot of text....";
...
if (send(new_fd, data, 13, 0) == -1)
            perror("send");

我不是真正的c人,那么这个数字13是什么意思?

1 个答案:

答案 0 :(得分:4)

这是你应该发送数据的方式。

char *data = "A lot of text....";
ssize_t rc;
...
rc = send(new_fd, data, strlen(data), 0);
/* Check rc. */

来自the manual

ssize_t send(int socket, const void *buffer, size_t length, int flags);

所以13是发送的字节数。

要考虑的一件事是send(2)并不能保证它能够一次性发送所有内容。你需要循环并检查它写了多少。一个好方法是使用史蒂文斯的writen function

相关问题