【发布时间】:2012-11-08 15:30:47
【问题描述】:
我正在 Linux 上用 C 语言实现一个简单的服务器/客户端。 可以说,作为客户端,我想询问服务器是否有特定文件。 我希望能够将我的查询发送到结构内的服务器(我更熟悉此操作的问题,但它是家庭作业)。
我的问题是,当使用结构时,我无法为文件名预先分配内存。 所以一个结构体:
struct{
int operation;
char *fileName;
long fileSize;
};
对我没有帮助,因为即使我为 fileName 分配内存,sizeof(struct) 保持不变 (sizeof(char*)+sizeof(fileSize)) 所以我无法将其发送到服务器。
希望我在这里很清楚......我的问题是如何使用 struct 向服务器发送一个未知大小的字符串。 (一种选择是提前发送 fileSize,然后发送该大小的 char*,但我不想这样做)。
谢谢!
【问题讨论】:
-
为什么有字符串就不能计算大小?
sizeof(struct)+fileSize? -
你的
fileSize是什么?这是fileName指向的数据的字节大小,还是文件大小?
标签: c networking tcp struct char