带msg标识符的Java TCP,如何处理

带msg标识符的Java TCP,如何处理,java,tcp,Java,Tcp,我在看一些TCP教程,但有些东西我不明白。 假设我将从客户端到服务器接收的数据表示为“01100100”,其中两个第一个字符“01”=类型标识符,其余的“100100”=Y,X需要存储到服务器。 现在服务器可以有很多类型号,因为它们可以是从“00”到“99” 我知道进行反应的一种方法可以是使用Lambda(或类似的反射或任何东西)进行HashMap,并调用基于接收到的标识符处理“01”的特定方法 protocols = new HashMap<>(); protoco

我在看一些TCP教程,但有些东西我不明白。 假设我将从客户端到服务器接收的数据表示为“01100100”,其中两个第一个字符“01”=类型标识符,其余的“100100”=Y,X需要存储到服务器。 现在服务器可以有很多类型号,因为它们可以是从“00”到“99”

我知道进行反应的一种方法可以是使用Lambda(或类似的反射或任何东西)进行HashMap,并调用基于接收到的标识符处理“01”的特定方法

    protocols = new HashMap<>();
    protocols.put("01", () -> Position(aMsg));

private void Position(String msg) {
    systemLog(" -> [dataRecived] "+msg);
}
protocols=newhashmap();
协议。放置(“01”,()->位置(aMsg));
私有无效位置(字符串消息){
系统日志(“->[DataReceived]”+消息);
}
但我不认为这是一个好办法,因为Parameter需要通过


对于基于该数据调用特定方法,处理它们的最佳(最快)实践是什么?开关应该足够快。或者处理从“00”到“99”的数据?假设您从InputStream读取接收到的数据。对于每个类型标识符函数,如

private void position(InputStream stream) {
    int x = // read x from InputStream
    int y = // read y from InputStream
    systemLog(" -> [dataRecived] "+msg);
} 
并将此函数放置到每个类型标识符的HashMap中。
现在,您可以统一处理大小不同的所有消息。

我认为您对套接字编程的理解还远远不够。虽然我对
HashMap
很感兴趣。哦,编辑了这个,如果我知道我不会问的话,这就是为什么a会发布一个问题的原因。但是你似乎对你正在做的事情没有任何理解。你需要的是几周的认真学习所能提供的帮助,而不是简单的答案所能提供的帮助。我理解你的担忧,问题是大多数在线教程都是关于“如何创建服务器客户端”“如何发送和接收数据”,试图搜索如何处理数据或如何构建数据是缺乏的,或者至少我在搜索错误的东西。我不需要“几周的仔细研究可以提供的帮助”,我需要朝着正确的方向推进,这样即使需要“几周的仔细研究”,我也可以学习