Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java TCP服务器客户端设计解决方案_Java_Oop_Design Patterns_Tcp_Client Server - Fatal编程技术网

Java TCP服务器客户端设计解决方案

Java TCP服务器客户端设计解决方案,java,oop,design-patterns,tcp,client-server,Java,Oop,Design Patterns,Tcp,Client Server,我正在开发一个高度面向对象的解决方案(也就是说,我想要尽可能少的耦合,大量的可重用性和模块化代码,良好地使用设计模式,干净的代码,等等)。我目前正在实现该应用程序的客户机-服务器方面,而且我是新手。我知道如何使用套接字,以及如何发送和接收流。然而,我不确定如何设计我的解决方案 TCP Java解决方案有哪些模式(如果有)?我将通过网络发送大量序列化对象,如何处理不同的请求/对象?事实上,如何处理请求本身?我是否将发送的每个对象包装在另一个对象中,然后当对象到达时,我对其进行“命令/请求”解析,然

我正在开发一个高度面向对象的解决方案(也就是说,我想要尽可能少的耦合,大量的可重用性和模块化代码,良好地使用设计模式,干净的代码,等等)。我目前正在实现该应用程序的客户机-服务器方面,而且我是新手。我知道如何使用套接字,以及如何发送和接收流。然而,我不确定如何设计我的解决方案

TCP Java解决方案有哪些模式(如果有)?我将通过网络发送大量序列化对象,如何处理不同的请求/对象?事实上,如何处理请求本身?我是否将发送的每个对象包装在另一个对象中,然后当对象到达时,我对其进行“命令/请求”解析,然后相应地处理其中包含的对象?正是这种总体设计让我苦苦挣扎

所有在线教程似乎都是bog标准的echo服务器,它可以发回客户端发送的文本。这些仅在了解实际套接字时有用,但在应用于实际情况时没有用处。大量的案例陈述和if陈述看起来发展很差。有什么想法吗?在这个阶段,我宁愿不使用框架

干杯


Tim.

考虑使用比TCP/IP更高级别的协议,不要重新发明轮子
rmi
是一个不错的选择,您应该能够找到关于它的好教程

考虑使用比TCP/IP更高级别的协议,不要重新发明轮子
rmi
是一个不错的选择,您应该能够找到关于它的好教程

我建议您要么使用RMI,要么详细查看它,这样您就可以确定如何以不同的方式做事。至少我建议您在尝试自己使用RMI之前先使用RMI,看看它是如何工作的。

我建议您使用RMI,或者详细查看它,以便确定如何以不同的方式进行操作。至少我建议您在尝试自己动手之前先使用RMI,看看它是如何工作的。

如果高性能和低延迟不是主要要求,那么就使用现有的解决方案。 如果您决定使用RMI而不是考虑使用J2EE与EJB——它将提供一个在RMI之上的事务管理。 否则,如果您需要极低的延迟,请查看在tcp之上使用自定义协议的现有解决方案的来源。
例如,OpenChord发送序列化的请求和响应对象,而Project Voldemort在其少数操作中使用自定义消息。

如果高性能和低延迟不是主要要求,那么就使用现有的解决方案。 如果您决定使用RMI而不是考虑使用J2EE与EJB——它将提供一个在RMI之上的事务管理。 否则,如果您需要极低的延迟,请查看在tcp之上使用自定义协议的现有解决方案的来源。
例如,OpenChord发送序列化的请求和响应对象,而Project Voldemort使用自定义消息执行其少数操作。

+1:如果你要重新发明轮子,请确保它是一个更好的轮子,值得付出额外的努力。+1:如果你要重新发明轮子,请确保它是一个更好的轮子,值得付出额外的努力。