gpt4 book ai didi

Java.lang.OutOfMemoryError 与网络作业

转载 作者:行者123 更新时间:2023-11-30 09:41:00 24 4
gpt4 key购买 nike

我目前正在为我的一门大学类(class)编写网络作业,但遇到了一些问题。此分配包括设置一组节点,这些节点使用一组预定义的消息通过套接字相互通信。这些消息必须能够由发回的字节数据和第四个套接字构成。

这是处理来自字节 [] 的数据的消息之一中的方法示例:

    public void processData(byte [] data) throws IOException 
{
DataInputStream stream = new DataInputStream(new ByteArrayInputStream(data));
//get the status code
statusCode = (byte)stream.read();
System.out.println("Status Code: "+statusCode);

//get the additional info
byte [] additionalInfoData = new byte[stream.readInt()];
stream.read(additionalInfoData, 0, additionalInfoData.length);
additionalInfo = new String(additionalInfoData);
System.out.println("additionalInfo: "+statusCode);

stream.close();

}

当我运行程序时,它到达这一点(这是在发送第一条消息之后),它停止了

    byte [] additionalInfoData = new byte[stream.readInt()];

除了这个异常(exception):

Exception in thread "Thread-1" java.lang.OutOfMemoryError: Java heap space
at cdn.wireformats.RegisterResponse.processData(RegisterResponse.java:58)
at cdn.wireformats.RegisterResponse.<init>(RegisterResponse.java:31)
at cdn.wireformats.WireFormatFactory.getWireFormatMessage(WireFormatFactory.java:22)
at cdn.communications.Link.readMessage(Link.java:62)
at cdn.communications.Link.run(Link.java:98)
at java.lang.Thread.run(Thread.java:679)

有人知道如何解决这个问题吗?我是否错误地从字节 [] 读取数据?

最佳答案

很可能您从 stream.readInt() 获得的值不是您所期望的。我建议将其打印出来并确保其正确无误。

可能有一个 endianness问题,也可能是接收码与发送码不100%一致。

关于Java.lang.OutOfMemoryError 与网络作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9196706/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com