小编sha*_*awn的帖子

java中的SSH客户端和服务器

哪些是用于在java中实现自定义SSH客户端和服务器的流行库?

我知道Jsch(http://www.jcraft.com/jsch/)是一个流行的java ssh客户端,有没有开源许可证的优秀且安全的java ssh服务器?

java ssh

5
推荐指数
1
解决办法
5424
查看次数

是否有可能在一个jvm中的java进程杀死/停止另一个jvm中的另一个java进程?

如果是这样,我怎样才能找出它(在系统中的所有其他进程中)以及如何杀死它以使其shutdownhook被执行?

我想这样做的原因是因为我想实现像apache start,apache stop之类的东西,在调用apache start或apache stop之后,服务器进程在后台启动或停止,然后我得到命令或bash提示符; 这假设适用于Linux和Windows.

java jvm ipc process

5
推荐指数
1
解决办法
1821
查看次数

准确设置 winsock 选择超时

我试图在指定的时间段后让我的接受呼叫超时,我尝试按照此处的建议进行操作:

Winsock 接受超时

在这种情况下,我在调用它时传递一个 TIMEVAL 结构来选择,问题是当我将 tv.tv_usec 设置为大约 40 分钟左右时,select 调用立即超时,而不是等待我指定的 40 分钟。MSDN 声明 select 的超时是它将等待的最长时间,我如何使它选择或接受在超时之前等待特定时间段?

#define WIN32_LEAN_AND_MEAN

#include <Windows.h>

#include <WinSock2.h>
#include <Ws2tcpip.h>

#include <cstdio>
#include <tchar.h>

VOID _tmain( int argc, TCHAR *argv[] )
{
    WSADATA wsaData = { 0 };
    ADDRINFOA hINTs = { 0 };
    PADDRINFOA pResult = NULL;
    SOCKET hServerSocket = INVALID_SOCKET,
           hClientSocket = INVALID_SOCKET;
    TIMEVAL tv = { 0 };
    INT iReturnStatus = -1;
    DWORD dwRecvTimeout = 30000, // Milliseconds
          dwSendTimeout = 30000; // Milliseconds …
Run Code Online (Sandbox Code Playgroud)

c c++ windows winapi winsock

5
推荐指数
1
解决办法
1万
查看次数

执行内存jar

假设我有一个java进程以byte []的形式从可信进程接收可运行的jar文件,有没有办法调用它而不必将jar文件写入磁盘然后调用它(启动一个新的)正在运行jar的进程)?

java jar process inter-process-communicat

5
推荐指数
2
解决办法
730
查看次数

调用JNI_CreateJavaVM会使程序崩溃

我有一个C DLL,它使用JNI代理任何对底层java程序的调用,该程序进行实际的举重.我动态加载jrockit jvm.dll来进行函数调用.

供应商A有一个C#DLL实际调用我的C DLL而另一个供应商B有一个C#程序调用供应商A的C#DLL.

使用供应商A的C#DLL进行测试时没有任何问题,但是在与供应商B的C#程序集成后,我通过JNI_CreateJavaVM初始化JVM的调用会使整个程序崩溃.

任何帮助,将不胜感激.

我收到的错误消息是:

[ERROR] Could not find allocated thread local data key in TIB
[ERROR] Could not create fast TLD
JRockit aborted: Unspecified Error(52)
Assertion failed: Could not create fast tld 
In vmDebug Before Abort() (src/jvm/runtime/debug/debug.c:103)
Run Code Online (Sandbox Code Playgroud)

编辑1:确定我已经反汇编了jvm.dll并且它调用TlsAlloc后跟TLSSet并且到达显示错误消息的代码,cmp esi,edx在第二个图像中的je SHORT 04755D4B之前必须不相等.

第一图像中的调用04755DD0的内容在第二图像中.

有谁知道之前的计算(操纵esi和edx的1)有什么作用?

拆卸1 拆卸2

编辑2 :(作为对PT的回应)我没有设置任何特定的线程系统,因此我认为它使用的是默认的线程系统,这是原生的,如下所示:http://docs.oracle.com/cd/E13222_01/ WLS/docs81b/JRockit的/ threads.html

您的猜测很可能是正确的,在查看反汇编时,我发现代码逻辑是这样的,它首先调用TlsAlloc,然后调用TlsSetValue将TlsAlloc返回的索引处的线程本地存储设置为常量幻数4711之后,它从线程信息块的开头使用eip循环查找值4711,一旦找到它,代码再次调用TlsSetValue将值设置为1147,此时它检查eip是否实际指向通过确保[eip]设置为1147来确定线程本地存储.

供应商B正在使用C#作为他们的程序,因此,他们将使用CLR虚拟机.一旦它到达供应商B调用我的DLL的点,他们就已经初始化了WPF棱镜和mef框架,将所有接口模块加载到它们各自的位置,初始化所有单例(在WPF prism术语中导出)模型并初始化MS工作流程.但是,当我将初始化代码转移到前几行时,jvm成功进行了初始化(这不是初始化jvm的正确位置,我们还没有测试其余的代码是否正常工作).

当TlsSetValue失败时,代码只分支到错误,TlsSetValue是否有任何原因失败?在供应商B的代码中我应该注意什么可能导致问题?

java java-native-interface assembly jvm jrockit

5
推荐指数
1
解决办法
2115
查看次数

HTTP内容范围标头是否与分块传输编码兼容?

如上所述,在HTTP标准中,字节服务是否可以进行分块传输?

networking http

5
推荐指数
1
解决办法
1084
查看次数

如何在java Socket/SSLSocket上设置读取超时?

如果我有一个连接的套接字并且它正在等待(阻塞)从远程机器接收某些数据但是不知何故或其他,远程机器失去了它的连接,我怎么能使它停止阻塞但是在某个时候超时一段时间没有收到任何数据?我正在使用Scanner对象从套接字读取数据并使用PrintWriter对象进行写入,

// Get InputStream
scanner = new Scanner( clientSocket.getInputStream() );
// Get OutputStream
printWriter = new PrintWriter( clientSocket.getOutputStream(), true );
Run Code Online (Sandbox Code Playgroud)

java sockets ssl networking timeout

4
推荐指数
1
解决办法
5180
查看次数

如何在java中获取已连接客户端的主机名?

我正在编写一个服务器应用程序,我想获取连接客户端的主机名,我将如何在java中执行此操作?

clientSocket.getInetAddress().getHostName() 不断给我IP地址而不是主机名,这有什么不对?

其中ClientSocket是一个SSLSocketSocket.

java sockets networking hostname

4
推荐指数
1
解决办法
8132
查看次数

Java同步和异常处理

如果我有一个同步块,并且在该块内的某个位置抛出了一个异常,而该异常未捕获到同步块中,那么当异常传播到该异常之外时,该锁会被放弃吗?

synchronized( mutex )
{
    throw new Exception( "" );
}
Run Code Online (Sandbox Code Playgroud)

java multithreading synchronization exception

3
推荐指数
1
解决办法
3643
查看次数

C/C++和Java中的字符是否被认为是LF或平台依赖的?

这个问题与C,C++和Java中的'\n'有关.对于每种相应的语言,是'\n'字符平台依赖(Windows上的unix CRLF上的LF)或者它只是LF而不管平台

c c++ java newline

1
推荐指数
1
解决办法
574
查看次数