【发布时间】:2013-10-02 10:37:16
【问题描述】:
有人能告诉我一种使用 write() 通过 TCP 仅发送部分字符数组的方法吗?我想发送前 255 个字节,然后作为另一个数据块发送接下来的 255 个字节,依此类推/剩余而不是整个数据变量,例如:
n = write(newsockfd,data,strlen(data));
有没有办法做到这一点?
【问题讨论】:
-
用
255替换strlen(data)? -
我在想那个,我想我对 write() 的理解不够好。如果我执行 255,它将读取前 255 个字节,但如果我想在那之后发送 char 数组的下一个 255 个字节怎么办?我正在尝试以块的形式发送数据,而不是一整件事。
-
然后您需要不断重复,直到剩下
-
我发现这本书是一个很好的介绍:man7.org/tlpi希望有所帮助。
-
那么是否有某种类型的指针/计数器可以跟踪我们正在读取的某些特定数据(在本例中为数据变量)的写入停止位置。我的印象是,如果我们重复相同的内容,它只会读取相同的 255 个字节。