我是 java 网络的新手,我有一个小项目,我想在 LAN 网络上下载它,只供五个用户使用。
我想使用 Java swing、MySQL 作为数据库和 Eclipse 作为 IDE。那么什么是使网络编程更容易的最佳框架,因为我不想从头开始。
我读过关于 Netty 和 Apache Mina 的文章,但我不知道这对我来说是否有好处。
我是 java 网络的新手,我有一个小项目,我想在 LAN 网络上下载它,只供五个用户使用。
我想使用 Java swing、MySQL 作为数据库和 Eclipse 作为 IDE。那么什么是使网络编程更容易的最佳框架,因为我不想从头开始。
我读过关于 Netty 和 Apache Mina 的文章,但我不知道这对我来说是否有好处。
请参阅netty-vs-mina链接。您关于“最佳”的问题并不是真正的问答形式,不应在本论坛提出。
这个问题已有 5 1/2 年的历史,但尚未得到回答或关闭。这就是我写这篇文章的原因,假设提问者的意思是Server-Client-Model。
我建议查看NetCom2。它是一个易于使用的框架,它为未来的改进保持了高度的模块化。
这个框架背后的概念可能看起来很奇怪,因为它是作为“网络上”的 Event-Bus构建的。通信基本上由对象组成,在网络上飞行以及对其做出反应的服务器/客户端。
在服务器上,您将编写一个 java 程序,它可能如下所示:
public class ServerMain {
private ServerStart serverStart;
public ServerMain(int port) {
serverStart = ServerStart.at(port);
}
public void start() throws StartFailedException, ClientConnectionFailedException {
serverStart.launch();
serverStart.acceptAllNextClients();
}
}
潜在客户看起来像这样:
public class ClientMain {
private ClientStart clientStart;
public ClientMain(String address, int port) {
clientStart = ClientStart.at(adress, port);
}
public void start() throws StartFailedException {
clientStart.launch();
}
}
这就是您创建和启动服务器和客户端的方式。
您可以告诉客户端和服务器如何对某些对象做出反应。这应该在 [clientStart/serverStart].launch() 之前通过说明:
clientStart.getCommunicationRegistration()
.register(MessageObject.class)
.addFirst(messageObject -> System.out.println(messageObject));
serverStart.getCommunicationRegistration()
.register(MessageObject.class)
.addFirst((session, messageObject) -> session.send(messageObject));
现在您可以通过以下说明从客户端向服务器发送一些内容:
clientStart.send(new MessageObject());
这个例子基本上是一个 echo-server,在这里解释。
可以在此处或此处找到更详细的两者之间的通信。
如果您对生成的输出感到不知所措,可以通过以下方式对其进行调节:
// Choose only one.
NetComLogging.setLogging(Logging.trace());
NetComLogging.setLogging(Logging.debug());
NetComLogging.setLogging(Logging.info());
NetComLogging.setLogging(Logging.warn());
NetComLogging.setLogging(Logging.error());
NetComLogging.setLogging(Logging.disabled());
这里有更详细的解释。
请注意,该项目刚刚上线,文档仍在进行中。
另请注意,此框架仍处于测试阶段。我不建议将它用于生产用途,但我会看看它以供个人使用。