我使用TCP在C中创建了一个服务器和客户端 一切都适用于这种简单的读写方法(同样用于服务器和客户端)。
buf 是服务器和客户端中的全局变量。
好读()
rhymeWords:: String -> [[String]]
rhymeWords "" = []
rhymeWords xs = bsort (words (reverse xs))
好写()
void read_from(int socket) {
int readlen;
if ((readlen = read(socket, buf, sizeof buf - 1)) < 0) {
perror("read");
}
buf[readlen - 1] = '\0';
}
我想确保所有内容都已写好,但我无法让它发挥作用 使用相同的读取方法,这将失败:
写错()
void write_to(int socket) {
if (write(socket, buf, sizeof buf - 1) < 0) {
perror("write");
}
}
fprintf的输出(stderr,&#34;%d \ n&#34;,写入); 是正确的,所以坏的write()似乎写了所有相同的字节,但是接收器只读取我发送的行的随机一半。
非常感谢任何帮助!