Netty 网络客户端连接

Netty 网络客户端连接,netty,Netty,在netty中创建客户端连接时,我有一个问题 Configuring a channel Options are used to configure a channel: ClientBootstrap b = ...; // Options for a new channel b.setOption("remoteAddress", new InetSocketAddress("example.com", 8080)); b.setOption("tcpNoDelay", true

在netty中创建客户端连接时,我有一个问题

Configuring a channel
Options are used to configure a channel:

 ClientBootstrap b = ...;

 // Options for a new channel
 b.setOption("remoteAddress", new InetSocketAddress("example.com", 8080));
 b.setOption("tcpNoDelay", true);
 b.setOption("receiveBufferSize", 1048576);
在这里,我们为什么不使用bind方法将通道绑定到启动客户端连接的端口(在客户端)? 我们只需要提供以下服务器地址和端口:

channel = bootstrap.connect(new InetSocketAddress(host, port));
这是在客户端还是服务器端创建新通道?此通道绑定在客户端的哪个端口

我们在执行服务器端引导时进行绑定,如下所示

 ServerBootstrap b = ...;
 channel = b.bind(b.getOption("localAddress"));

我感到困惑,无法理解客户端从哪个端口向服务器发送数据,以及使用了什么通道?

您应该使用
ClientBootstrap.connect(remoteAddress,localAddress)
来指定要创建的套接字的本地地址。或者,您可以调用
ClientBootstrap.bind(localAddress).sync()
,然后调用
ClientBootstrap.connect(remoteAddress)
来实现同样的功能。

您应该使用
ClientBootstrap.connect(remoteAddress,localAddress)
来指定要创建的套接字的本地地址。或者,您可以调用
ClientBootstrap.bind(localAddress).sync()
,然后调用
ClientBootstrap.connect(remoteAddress)
来实现相同的功能。

当您使用
connect(SocketAddress remoteAddress))
创建客户端连接时,您将在客户端创建一个通道。 connect方法绑定本地地址,然后连接到远程地址。在connect方法中未指定本地地址时,该方法将绑定到本地ip和随机端口。
如果要决定使用哪个本地端口,需要使用
connect(SocketAddress remoteAddress,SocketAddress localAddress)
方法。

使用
connect(SocketAddress remoteAddress))创建客户端连接时。
在客户端创建通道。 connect方法绑定本地地址,然后连接到远程地址。在connect方法中未指定本地地址时,该方法将绑定到本地ip和随机端口。 如果要决定使用哪个本地端口,需要使用
connect(SocketAddress-remoteAddress,SocketAddress-localAddress)
方法