私は何時間もNetty javadocsを見てきましたが、これはまだ分かりません。普通のTCP接続を開くにはどうすればいいですか? NettyのIRCサーバーに接続しますか?NettyでTCP接続(クライアント)を開くにはどうすればよいですか?
答えて
you can find many demo in github of netty
サーバーでnetty5を使用しているAssumeing。 デコーダとエンコーダをパイプラインに追加する必要があります。ここ
socketChannel.pipeline().addLast(new StringEncoder() ,new StringDecoder() ,new LineBasedFrameDecoder(1024));
以下のような は私のサーバーのデモは、あなたが通常のようにそれを接続するために、ブロッキングソケットを使用することができます
String ip ;
int port = 9999;
NioEventLoopGroup workGroup = new NioEventLoopGroup(8);
NioEventLoopGroup bossGroup = new NioEventLoopGroup();
try {
bootstrap = new ServerBootstrap();
bootstrap.group(bossGroup, workGroup);
bootstrap.channel(NioServerSocketChannel.class);
bootstrap.option(ChannelOption.SO_BACKLOG, 100);
bootstrap.childHandler(new ChannelInitializer<SocketChannel>() {
@Override
protected void initChannel(SocketChannel socketChannel) throws Exception {
socketChannel.pipeline().addLast(new StringEncoder() ,new StringDecoder() ,new LineBasedFrameDecoder(1024));
socketChannel.pipeline().addLast(new ChannelHandlerAdapter() {
@Override
public void channelRegistered(ChannelHandlerContext ctx) throws Exception {
System.out.println("the num" +num.getAndIncrement());
}
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
System.out.println("what i say is :" + msg.toString());
ctx.channel().writeAndFlush("from server " + "reply message is " +msg.toString()+"\n");
}
});
}
});
ChannelFuture future = bootstrap.bind(port).sync();
System.out.println("Server start at port : " + port);
future.channel().closeFuture().sync();
}catch (Exception e){
System.out.println("error");
}finally {
bossGroup.shutdownGracefully();
workGroup.shutdownGracefully();
}
}
です。 ここに私のクライアントのデモです。
Socket socket = new Socket();
try {
socket.connect(new InetSocketAddress("localhost" , 9999));
InputStream inputStream = socket.getInputStream();
OutputStream outputStream = socket.getOutputStream();
outputStream.write("hello".getBytes());
outputStream.flush();
InputStreamReader reader = new InputStreamReader(inputStream) ;
char [] temChar = new char[40];
StringBuffer buffer = new StringBuffer();
while (reader.read(temChar) != -1){
buffer.append(temChar);
System.out.println(buffer.toString() +"\n");
}
} catch (IOException e) {
e.printStackTrace();
}
"hello"を送信して、同じ単語を返信します。ここ
私のクライアントネッティーデモが
int port = 9999;
Bootstrap bootstrap ;
NioEventLoopGroup workGroup = new NioEventLoopGroup(8);
try {
bootstrap = new Bootstrap();
bootstrap.group(workGroup);
bootstrap.channel(NioSocketChannel.class);
bootstrap.handler(new ChannelInitializer<SocketChannel>() {
@Override
protected void initChannel(SocketChannel socketChannel) throws Exception {
socketChannel.pipeline().addLast(new StringDecoder() ,new StringEncoder() , new LineBasedFrameDecoder(1024), new ChannelHandlerAdapter(){
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
System.out.println("recieve method of client : " +msg.toString());
}
});
}
});
NioSocketChannel nioSocketChannel ;
ChannelFuture future = bootstrap.connect("localhost" , 9999).sync();
//you can also invoke writeAndFlush() in other thread with channel ,
// it is the same as server
System.out.println("try to write hello");
Channel channel = future.channel();
channel.writeAndFlush("hello\n\r");
future.channel().closeFuture().sync(); //it will block until
// you invoke
// channel.close();
System.out.println("finish: " + port);
}catch (Exception e){
e.printStackTrace();
System.out.println("error");
}finally {
workGroup.shutdownGracefully();
}
}
'ソケットソケット=新しいソケット();'ちょっと待っているのは単純なJavaソケットです... * netty *で*クライアント*を作るには?誰もがサーバーを作る方法について話していますが、私は*クライアント*の作り方を教えてくれる人はいません。 – SoniEx2
@ SoniEx2私はアップデート –
を持っています。github https://github.com/netty/netty/tree/4.1/example/src/main/java/io/netty/exampleにある多くのデモを見つけることができます。 –
- 1. ローカルネットワーク外のTCPサーバーにTCPクライアントを接続するにはどうすればよいですか?
- 2. クライアントがTCPでTCP接続されていないかどうかを確認するにはどうすればよいですか?
- 3. AWSインスタンスでTCPポートを開くにはどうすればよいですか?
- 4. SilverLightからTCPソケットを開くにはどうすればよいですか?
- 5. TCP接続を「終了」するにはどうすればいいですか?
- 6. TCPサーバー/クライアント接続をどのように維持するのですか?
- 7. TCP接続を例外なく正常に閉じるにはどうすればよいですか?
- 8. TCPクライアント接続
- 9. NettyサーバーがポートでリッスンしているかどうかをNettyクライアントが検出できるようにするにはどうすればいいですか?
- 10. ESP8266 TCPクライアントでTCP接続を永続的に維持する
- 11. channelhandlerのnettyでクライアントに接続
- 12. ラズベリーパイのTCPポートを開くにはどうすればいいですか?
- 13. Nettyクライアントは接続されません
- 14. Windows Phone 7でTCP接続を開く
- 15. goでrsa.PublicKeyをtcp接続経由で送信するにはどうすればよいですか?
- 16. クライアント側の影響力tcpはどのように接続しますか?
- 17. Linuxで任意のTCP/IP接続を切断するにはどうすればよいですか?
- 18. TCPクライアント接続スクリプト
- 19. TCP接続をWebSocketに転送するにはどうすればよいですか?
- 20. Javaで多くのTCP接続を開くには
- 21. アプリケーションからLinkedIn接続プロファイルを開くにはどうすればよいですか?
- 22. 接続されたクライアントのホスト名をjavaで取得するにはどうすればよいですか?
- 23. 「接続リセットによるピア」Indy TCPクライアント
- 24. サーバが接続するまでクライアントをオンにするにはどうすればよいですか?
- 25. スクリプトを開くにはどうすればよいですか?
- 26. テストTCP接続タイムアウトを設定するにはどうすればよいですか?
- 27. Zookeeperクライアントは、TCP接続をたくさん開いていますか?もしそうなら、スケーラビリティはどうですか?どんな限界?
- 28. 複数のクライアントを同じソースにPythonで接続するにはどうすればよいですか?
- 29. 接続文字列はどうすればよいですか?
- 30. GoogleクラウドのHTTP(S)ロードバランサはTCP接続をどれくらい開いておくのですか?
であるあなたは、網状の一部として提供されている例をチェックしましたか?そのすべてがそこにあります。 –
@NormanMaurer実際、私はjavadocsを読んでいませんでした。 – SoniEx2