Netty 网络客户端连接
在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
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)
方法