套接字上的流对象

Streaming objects on a socket

本文关键字:对象 套接字      更新时间:2023-10-16

这个问题不是专门关于套接字的,而是一个c++问题。但是,我有一个可以通过套接字发送和接收数据的类。我想用流语法发送数据,所以我创建了<<类中的操作符:

virtual const BaseSocket& operator << (const std::string &oMessage);

现在在我的代码中,我可以使用它,它工作了:

socket << "data";

我现在面临的问题是,我只能在每行放一个元素,而不能使用:

socket << "data1" << "data2";

我知道当我想要流式传输它们时,我必须重载其他数据类型的操作符,如int, float等,但我无法找到为什么我不能链接变量

您应该从const BaseSocket&中删除const

BaseSocket& operator << (const std::string &oMessage);

const是防止链接的原因,因为操作符<<本身是非const,所以不能在const变量上调用它,const变量是前一个操作符调用

返回的。