java - 如何通过 Java 中的套接字获取错误流?

标签 java c sockets

我目前正在写一些东西来解决这个 Java 错误:

http://bugs.sun.com/view_bug.do?bug_id=5049299

基本上,我有一个与 Java 服务器运行在同一台机器上的轻量级 C 服务器。当我可以请求它通过套接字派生/运行新进程并传回 stdin/stdout/stderr 时,我正在向 C 服务器添加一个功能。在 Java 方面,我创建了一些模仿 ProcessBuilderRuntime.exec() 行为的东西,但通过套接字。

stderr 出现问题。 Java 套接字没有错误流,所以我对如何恢复它有点不知所措。我想出了两个可能的解决方案:

  1. 创建第二个套接字(可能是 从 C 服务器返回到 Java 服务器)我只是发送stderr 回来。
  2. 交错输出 带有 stderr 的进程 处理然后将它们分开解析 Java 回到单独的流中

这两种解决方案都有固有的问题,所以我很想听听任何人的反馈。

奖励:给我一个简单、有保证的解决 Java 错误的方法,不需要我做任何这些,我将永远是你最好的 friend 。

最佳答案

为了解决这个问题,我利用了两台服务器运行在同一台机器上的优势。我只是将 stderr 写入我在另一台服务器上读取的文件。不是世界上最优雅的解决方案,但非常简单并且有效。

关于java - 如何通过 Java 中的套接字获取错误流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3322347/

相关文章:

c++ - Qt:同步 UDP 套接字中是否需要 waitForReadyRead/waitForBytesWritten?

java - JAVA 和 .net 在基于 Web 的应用程序开发中有何区别

java - 如何在静态上使用 getString() ?

java - Socket客户端如何设置SoTimeout

java - 多个套接字导致 ConnectException : Connection refused: connect

objective-c - CAFAudioDescription 成员类型和字节顺序

java - 如何保存 View 组件的位置?

java - Android Studio : Flashlight crashes when turning off

c - C中的简单乘法和算术

c - 什么是 'forward declaration' 以及 'typedef struct X' 和 'struct X' 之间的区别?