我正在用C++编写客户端/服务器应用程序,需要实现简单的协议才能正确发送和接收数据。我有一个服务器协议类,可以将消息转换为我的格式,然后再从此格式转换它。
,什么是服务器端的协议看起来像:什么OOP设计决策适合客户端/服务器应用程序中协议的情况?
class BaseProtocol {
protected:
int NumberOfBytesInPackOfText;
std::string serviceString;
public:
BaseProtocol(int SizeOfTextPack, const char* extraString):
NumberOfBytesInPackOfText(SizeOfTextPack),
serviceString(extraString) {}
virtual std::string& convertToSystemMessage(const char* message)=0;
virtual std::string& convertToNativeMessage(const char* message)=0;
virtual ~BaseProtocol() {
NumberOfBytesInPackOfText = 0;
serviceString = "";
}
};
class SimpleProtocol: public BaseProtocol {
public:
SimpleProtocol(int SizeOfTextPack, const char* service):
BaseProtocol(SizeOfTextPack, service) {}
std::string& convertToSystemMessage(const char* nativeMessage);
std::string& convertToNativeMessage(const char* systemMessage);
};
现在我不能决定什么会是更好的决定,使实现对客户端应用程序协议。服务器协议的朋友类?或者可能需要从服务器协议中提取子类,然后客户端协议将从此类派生?