【发布时间】:2012-08-25 08:44:35
【问题描述】:
我有一个多线程服务器,正在等待套接字连接。
第一次交换的消息总是同类型的,客户端发送一个带有认证细节的对象(userid/pwd),服务器检查它并回复服务器是否认证通过。
在第一次消息交换之后,客户端将发送一些请求,对应于服务器能够执行的各种任务。 我如何为这些异类请求建模?特别是我的问题是关于使用 InputObjecStream/OutputObjectStream 在客户端和服务器之间发送的对象类型
我有两个想法:
使用“通用消息”对象,具有 2 个属性:一个任务标识符和一个没有泛型的 HashMap,能够携带执行任务所需的各种类型的参数。
每个类型的任务一个对象,这个解决方案“更干净”,但是不知道如何让服务器理解接收到的消息的类型,我想到了一系列的对象转换从客户端接收到的消息到每个可能的“特定任务消息”,忽略许多 CastException。听起来很糟糕,有什么办法可以避免这种情况?
【问题讨论】:
-
如果选择路线2,请使用
instanceof。
标签: java sockets client-server