java - 如何限制通过 ObjectInputStream 从 Socket 读取的最大大小?

标签 java sockets serialization stream

有没有办法限制从 Java 中的 ObjectInputStream 读取的最大缓冲区大小?

如果很明显,所讨论的对象是恶意制作的巨大对象,我想停止反序列化。

当然,还有 ObjectInputStream.read(byte[] buf, int off, int len),但我不想遭受分配的性能损失,比如 byte[1000000]。

我是不是漏掉了什么?

最佳答案

你写一个FilterInputStream如果它发现它从其底层流中读取了超过一定数量的数据,它将抛出异常。

关于java - 如何限制通过 ObjectInputStream 从 Socket 读取的最大大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1249475/

相关文章:

python-3.x - python : multithreaded unix socket transfers are very slow

C++ 套接字接收错误命令,不是预期的命令

scala - Chill-kryo 中的异常

c# - 序列化和反序列化大文件

java - 在服务器上部署项目

java - 这是使用 java 关键字 "interface"的正确位置吗?

c - 带 Linux 套接字的 HTTPS?

c# - Microsoft AVRO 是否能够序列化 ConcurrentDictionary?

java - BST 和随机 BST 的区别

java - Hibernate envers 是否提供有关哪个用户在什么时间进行更改的信息