繁体   English   中英

如何在socket上编写通用指针?

[英]How to write generic pointer on socket?

如何在C ++中的tcp套接字上写入void *? 特别是,我需要知道类型,否则我不知道它的数据大小?

在这个例子中,我不知道buf的数据大小:

foo(const void *buf, int socket){
int n= write(socket , buf, ???);
}

当然,您需要知道要写入的对象的大小。 您不必知道确切的类型,但至少要知道它的字节大小。 C ++无法闻到要写入的对象有多长。

如果您知道类型,只需在其上使用sizeof运算符就可以将长度传递给您的函数。 但要确保采取sizeof你的类型,而不是sizeof的一个指针类型。 即,如果您的对象类型是YourClass ,请使用sizeof(YourClass) ,而不是sizeof(YourClass*)或甚至sizeof(void*)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM