草庐IT

internet-inputStream

全部标签

java - 将 java 远程调试器端口公开到 Internet 是否安全?

我打算公开一个端口,用于通过互联网远程调试基于Java的Web服务,但三思而后行,我意识到它没有任何身份验证。理论上,似乎可以编写一个工具,附加到远程调试器端口,并通过JavaAPI执行任意系统命令。或者修改/转储数据库,等等。至少这个漏洞似乎是这样http://securityaffairs.co/wordpress/36394/hacking/paypal-remote-code-execution.html我不记得曾被强烈警告过要公开远程调试器端口。但如今,当数百个僵尸网络扫描端口寻找漏洞时,应该更好地宣传它。任何人都可以评论它是否安全和/或如何在任意基于java的网络服务上以安

Java 网络 : evented Socket/InputStream

我正在Java的套接字上实现一个面向事件的层,我想知道是否有一种方法可以确定是否有待读取的数据。我通常的方法是从套接字读取到缓冲区,并在缓冲区填充给定字节数时调用提供的回调(如果每次到达时都需要触发回调,则可以为0),但我怀疑Java已经在为我做缓冲。InputStream的available()方法是否可靠?我应该只read()并在Socket之上做我自己的缓冲吗?还是有别的办法? 最佳答案 简而言之,不。available()不可靠(至少不适合我)。我推荐使用java.nio.channels.SocketChannel连接Se

java - 你能写 Java 代码来检查你本地 Internet Explorer 的版本吗

基本上,我只需要编写一个简单的java程序来检测我本地安装的InternetExplorer的版本。有javascript代码,但它在您的浏览器中运行。我想要的是这样的代码:publicclassVersionTest{publicstaticvoidmain(String[]args){System.out.println("youIEVersionis:"+getIEVersion());}publicstaticStringgetIEVersion(){//implementationthatgoesoutandfindtheversionofmylocallyinstalled

java - 当 jar 文件从 URL 作为 InputStream 打开时,JarEntry.getSize() 返回 -1

我正在尝试从JarInputStream读取文件,文件大小返回-1。我正在从URL作为inputStream访问Jar文件。URLConnectioncon=url.openConnection();JarInputStreamjis=newJarInputStream(con.getInputStream());JarEntryje=null;while((je=jis.getNextJarEntry())!=null){htSizes.put(je.getName(),newInteger((int)je.getSize()));if(je.isDirectory()){conti

java - InputStream.close() 有什么作用吗?

根据officialdocumentation:publicvoidclose()throwsIOExceptionClosesthisinputstreamandreleasesanysystemresourcesassociatedwiththestream.TheclosemethodofInputStreamdoesnothing.那么它什么都不做还是什么都不做? 最佳答案 不,它什么都不做,但是InputStream是一个abstract类,其中close不是抽象的(它实现了java.io.Closeable),它有一个空

Java:并发读取 InputStream

现在已经四处寻找了一段时间,我对这个问题有点困惑。我希望能够获取输入流并分段同时读取它。这些段不会相互交互,它们只是要从上传的文件插入或更新到数据库中的值。是否可以通过设置段大小来并发读取输入流,然后在分拆新线程以处理转换和插入/更新之前向前跳过?本质上,该文件是一个ID列表(每行一个ID),但如果我可以指定一个分隔符则更好。有些文件可能很大,所以我想处理数据并将其转换成段,以便在插入/更新数据库后可以释放JVM内存。这可能吗?如果是这样,是否有任何图书馆已经这样做了?提前干杯和感谢,阿列克谢蓝。 最佳答案 一个好的方法可能是让一个

java - 好的设计 : How to pass InputStreams as argument?

我有一个大文件,我正在打开一个FileInputStream。该文件包含一些文件,每个文件都具有相对于开头的偏移量和大小。此外,我有一个解析器应该评估这样一个包含的文件。Filefile=...;//thebigfilelongoffset=1734;//acontainedfile'soffsetlongsize=256;//acontainedfile'ssizeFileInputStreamfis=newFileInputStream(file);fis.skip(offset);parse(fis,size);publicvoidparse(InputStreamis,long

java - 以多种格式从 InputStream 中读取

我正在尝试编写一个类来读取HTTP请求和响应并解析它们。由于header是普通文本,使用BufferedReader和readLine方法似乎最容易读取它们。这显然不适用于数据主体,因为它可能是二进制的,所以我想在读取header后切换到读取原始字节。现在,我正在做这样的事情:InputStreaminput=socket.getInputStream();BufferedReaderreader=newBufferedReader(newInputStreamReader(input));BufferedInputStreambinstream=newBufferedInputStr

java - 为什么 java 的 inputstream.close() 会阻塞?

我的Java程序使用ProcessBuilder(将redirectErrorStream设置为true)并有一个循环来运行进程的输入流的读取方法,这是阻塞的。然后我调用的外部程序停止等待输入和标准输入。我现在想杀死这个过程。这不是通过(在单独的线程中)调用进程的destroy方法,并调用inputstream的close方法来停止read方法阻塞来完成的,这样我的初始线程就可以结束它的生命了吗?由于某些原因process.getInputStream().close()block。从JavaDoc我不明白为什么会发生这种情况。此外,我不明白为什么javadoc说“InputStrea

java - 是否可以将 Process stdout InputStream 读取到 NIO ByteBuffer 中?

是否可以使用NIO来处理来自进程的标准输出?我让它与java.io一起工作,但这是一种练习,可以更多地了解NIO并探索性能改进的可能性。基本上,我想尽可能快地将大量文本从stdout流式传输到缓冲区而不阻塞,然后稍后处理该缓冲区的内容。问题是,我似乎无法找出合适的巫术来让它与NIO一起工作。这就是我现在所在的位置:ProcessBuilderpb=newProcessBuilder(...);Processp=pb.start();stdout=newStreamConsumer(p.getInputStream());newThread(stdout).start();//other