我正在使用 C (linux)中的套接字,我需要通过网络发送更长的文本(60个字符)。我尝试过一个char指针,但它太短了。任何建议我应该使用什么?
char *data = "A lot of text....";
...
if (send(new_fd, data, 13, 0) == -1)
perror("send");
我不是真正的c
人,那么这个数字13
是什么意思?
答案 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。