您好我有一个Netty Server,其处理程序应该接受字符串.它似乎只接收最多1024个字节的内容.如何增加缓冲区大小.我已经尝试过了
bootstrap.setoption("child.sendBufferSize",1048576); 
bootstrap.setoption("child.receiveBufferSize",1048576);

没有成功.

处理程序如下

public class TestHandler extends SimpleChannelHandler {


@Override
public void messageReceived(ChannelHandlerContext ctx,MessageEvent e) {

    ChannelBuffer buf = (ChannelBuffer) e.getMessage();

    String response = "";

    if (buf.readable()) {

        response = buf.toString(CharsetUtil.UTF_8);
        System.out.println("CONTENT: " + response);
    }

    System.out.println(response);


}

@Override
public void exceptionCaught(ChannelHandlerContext ctx,ExceptionEvent e) {
    e.getCause().printstacktrace();

    Channel ch = e.getChannel();
    ch.close();
}

}

解决方法

你在使用UDP吗?如果是这样,数据包将以1024字节最大.此代码注释位于QOTM代码示例中:

Allow packets as large as up to 1024 bytes (default is 768). You Could
increase or decrease this value to avoid truncated packets or to
improve memory footprint respectively.

Please also note that a large UDP packet might be truncated or dropped
by your router no matter how you configured this option. In UDP,a
packet is truncated or dropped if it is larger than a certain size,
depending on router configuration. IPv4 routers truncate and IPv6
routers drop a large packet. That’s why it is safe to send small
packets in UDP.

如果您使用TCP,则应在处理之前将管道解码器和字符串解码器添加到管道中;像这样的东西:

pipeline.addLast("frameDecoder",new DelimiterBasedFrameDecoder(80960,Delimiters.lineDelimiter()));
pipeline.addLast("stringDecoder",new StringDecoder(CharsetUtil.UTF_8));
pipeline.addLast("myHandler",new TestHandler());

请注意,您需要修改测试处理程序,因为MessageEvent实际上将包含您的字符串.

@Override
public void messageReceived(ChannelHandlerContext ctx,MessageEvent e) {
    String response = (String) e.getMessage();
    System.out.println(response);
}

合理 ?

java – Netty增加ChannelBuffer大小的更多相关文章

  1. 关于h5中的fetch方法解读(小结)

    这篇文章主要介绍了关于h5中的fetch方法解读(小结),fetch身为H5中的一个新对象,他的诞生,是为了取代ajax的存在而出现,有兴趣的可以了解一下

  2. ios – 使用NSURLSession获取JSON数据

    我试图从谷歌距离api使用NSURLSession获取数据,但如下所示,当我打印响应和数据时,我得到的结果为NULL.可能是什么问题?

  3. ios – 错误域= com.alamofire.error.serialization.response代码= -1011“请求失败:禁止

    任何人都可以帮我解决以下错误–>在AFNetworking2.5中使用“删除”方法时出错解决方法我发现,如果我的手机时钟不同步……它不允许我更新…也许检查你的手机设置到正确的时间“自动区”,看看是否有效…

  4. iOS网页/原生应用Facebook登录弹出 – 失败?

    如果我重新启动app/web-app,用户将自动登录,并重定向到成功页面.我认为是导致问题的原因当您在Firefox/Chrome/Safari浏览器中运行网页时,Facebook登录对话框会弹出一个弹出窗口或另一个选项卡.我相信这是这个弹出页面的一个问题,以及当成功登录时Javascript如何与自身通信.window.close的东西没有返回的根页面…失败的解决方法由于应用程序挂在前面提到的URL上,我决定在shouldStartLoadWithRequest(…)中添加if语句以强制UIWebvie

  5. ios – Watchkit新会话不起作用

    我的手表扩展中有两个视图控制器.每当我打电话时我只得到第一个视图控制器的响应,并在第二个viewcontroller中得到错误WCSession在app和watch扩展中启动.任何建议?

  6. 使用Firebase iOS Swift将特定设备的通知推送到特定设备

    我非常感谢PushNotifications的帮助.我的应用聊天,用户可以直接向对方发送短信.但是如果没有PushNotifications,它就没有多大意义.它全部设置在Firebase上.如何将推送通知从特定设备发送到特定设备?

  7. ios – 保存从查询中获取的用户的属性(即不在currentUser上)

    我有兴趣根据currentUser执行的操作将属性保存到数据库中的用户.基于以下代码,我收到错误消息“除非已通过logIn或signUp验证用户,否则无法保存用户”我想知道是否有一个解决方法,我可以将属性保存到foundUser,而无需登录该用户.谢谢你的帮助!解决方法如果要更新当前不是登录用户的用户,则需要使用主密钥调用Parse.您可以从CloudCode执行此操作;并从您的iOS项目中调用它;

  8. 在iOS中使用NSJSONSerialization进行JSON解析

    解决方法首先在您的JSON响应字典中,在“RESPONSE”键下,您有一个数组而不是字典,该数组包含字典对象.所以要提取用户名和电子邮件ID,如下所示

  9. Xcode:Alamofire获得String响应

    我是IOS开发的新手,目前正在与Alamofire学习网络我正在尝试登录…每当凭证正确时,.PHP文件返回一个json,我可以通过以下代码从Alamofire获取json:现在……当凭证错误时,.PHP不会给json..而且它返回一个字符串..例如“wrong_password”或“userLocked”等等……如何通过Alamofire获得String响应?解决方法如果您希望JSON响应使用.responseJSON,如果您想要String响应,请使用.responseString.如果你想两者同时使用

  10. ios – 全局变量中的Appdelegate in swift

    我将一些数据从viewcontroller&从另一个视图控制器获取它.下面是应用程序委托的代码代码设置mainDic代码来获取字典.问题是我得到的输出没有.请让我正确.解决方法这是你的错误尝试将您的代码更改为此

随机推荐

  1. java – Netty增加ChannelBuffer大小

    您好我有一个NettyServer,其处理程序应该接受字符串.它似乎只接收最多1024个字节的内容.如何增加缓冲区大小.我已经尝试过了没有成功.处理程序如下}解决方法你在使用UDP吗?

  2. java – 使用SPDY和Netty

    此外,当服务器不支持SPDY并且通道回退到标准SSL连接时,该功能如何?

  3. java – Linux机器上Netty 4.1的性能调优

    我正在使用Netty4.1Beta3构建一个消息传递应用程序来设计我的服务器,并且服务器理解MQTT协议.这是我的MqttServer.java类,它设置Netty服务器并将其绑定到特定端口.现在,我在Mac上对我的应用程序进行了负载测试,具有以下配置网络性能非常出色.在执行我的代码时我查看了jstack,发现nettyNIO产生了大约19个线程,并且它们似乎都没有等待等待通道或其他东西.然后我在

  4. 如何使用Java netty正确限制带宽使用?

    在此先感谢您的帮助!

  5. java – Netty 4多客户端

    我需要使客户端能够进行很多连接.我使用Netty4.0.不幸的是,所有现有的示例都不显示如何创建大量的连接.这是正确的决定吗?

  6. 如果JVM GC仍然存在,为什么需要手动处理Netty ByteBuf的引用计数?

    根据NettyinActionv10的说法,引用计数用于处理ByteBuf的汇总.但是JVM不知道netty引用计数,所以JVM仍然可以使用ByteBuf.如果是这样,为什么还需要关心引用计数和手动调用release()方法?

返回
顶部