Grid Ops Java-TcpServer

时间:2020-01-09 10:35:45  来源:igfitidea点击:

Grid Ops的核心组件之一是TCP服务器组件。 TCP服务器需要2个线程才能运行。第一个线程运行accept循环,该循环接受新的传入连接。第二个线程从所有传入的连接中读取数据,并对传入的流量执行任何我们想做的事情。

创建一个TCP服务器

这是在Grid Ops中创建简单的TCP服务器的方法:

TcpServer tcpServer  = GridOps.tcpServerBuilder().build();

这将创建一个" TcpServerBuilder"并通过在" TcpServerBuilder()"上调用" build()"来构建TCP服务器。

上面的示例在端口1111上打开TCP端口,这是默认的IAP端口。

设置TCP端口

我们可以在构建TCP服务器时为其设置TCP端口。这是如何在TCP服务器上设置TCP端口的示例:

TcpServer tcpServer  = GridOps.tcpServerBuilder().tcpPort(1111).build();

TCP服务器构建器上的方法调用tcpPort(1111)设置服务器将侦听的TCP端口。

启动TCP服务器

前面的代码示例仅创建一个TCP服务器,但没有启动它。我们可以启动一个线程,侦听TCP服务器的传入连接,如下所示:

TcpServer tcpServer  = GridOps.tcpServerBuilder().build();

new Thread(tcpServer).start();

此代码示例的第二行启动一个新线程,该线程运行TCP服务器的run()方法。

现在,新创建的线程侦听传入的连接,但是此线程不会从传入的连接读取任何数据。

TCP服务器构建器还具有一种便捷的方法,可以为TCP服务器启动一个线程,以侦听传入的连接。这是使用该便捷方法的样子:

TcpServer tcpServer = GridOps.tcpServerBuilder().buildAndStart();

是buildAndStart()方法,它首先构建TcpServer实例,然后启动一个线程以侦听其传入的连接。当然,我们仍然可以在调用buildAndStart()之前在TCP服务器构建器上调用tcpPort()

从TCP服务器读取消息

要从TCP服务器读取消息,我们需要创建一个" TcpSocketsPort"实例。这样做在其自己的文本中进行了说明。

停止TCP服务器

我们可以通过调用其stop()方法来停止正在运行的TCP服务器,如下所示:

tcpServer.stop();

这将导致侦听传入连接的线程关闭" ServerSocketChannel"并退出线程。当前,它不考虑任何打开的入站套接字。