我想为我的套接字通信的对端实现一个带有控制代码的类。我尝试使用枚举和派生类,但我的尝试不起作用。
我想要一个Type
包含不同的Codes
. 例如,控制作为类型,唤醒和关闭作为代码信息。
对等方应该能够使用 Switch Case 来识别信息。就像是:
switch(data.Type)
{
case Control:
/* Check diffrent codes */
break;
case Notification:
/* Check diffrent codes */
break;
}
我尝试了以下操作,但遗憾的是我无法使用 Switch Case 或类似工具来识别信息。
public abstract class Type
{
private readonly String _code;
protected Type(String code)
{
_code = code;
}
public String Code
{
get { return _code; }
}
}
public sealed class Control : Type
{
public static readonly Control Wakeup = new Control("Wakeup");
public static readonly Control Shutdown = new Control("Shutdown");
private Control(String code) : base(code)
{
}
}
任何想法如何实现这一点?请考虑,TypeXXX不应与CodeYYYY结合使用。感谢您的建议!
编辑
我有一个 TCP 客户端和服务器套接字。一般沟通工作正常。现在我想实现一个类或类似的东西,告诉同伴他收到了哪种信息。他能够决定他应该如何处理这些信息。我认为像ICMP Control Messages这样的东西会很好。我有一个通用的信息类型,代码指定了它。
类型代码关系如下所示:
+--------------+-------------+
| Type | Code |
+--------------+-------------+
| Control | Shutdown |
| | Wakeup |
| | CheckUpdate |
| | ForceUpdate |
| ----------- | ----------- |
| Notification | Online |
| | Offline |
| | Login |
| | Logoff |
| ----------- | ----------- |
| Data | Zip |
+--------------+-------------+
包看起来像这样:
+------+------+---------+
| Type | Code | Payload |
+------+------+---------+
接收器检查Type
和Code
之后开始处理有效载荷。