首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ssh多线程服务器在ssh_bind_accept中仍处于阻塞状态

ssh多线程服务器在ssh_bind_accept中仍处于阻塞状态
EN

Stack Overflow用户
提问于 2013-08-29 22:30:53
回答 1查看 599关注 0票数 1

我使用libssh5.5实现了一个SSH服务器。在端口22上运行连接到服务器的单个ssh客户机,一切正常。当我尝试连接第二个客户端(我使用PUTTY ssh终端作为客户端)时,问题就出现了。在ssh_bind_accept中等待客户端连接的服务器线程没有被激活,新打开的(第二个)终端显然是“死的”(第一个打开的终端工作正常)。

我想知道是否有一些重要的设置我遗漏了。

下面是我执行的调用:

代码语言:javascript
运行
复制
1. Create the session:

    sshbind = ssh_bind_new();
    session = ssh_new();

2. Call the listen:

    ssh_bind_listen(sshbind)

3. Call the accept:

     ssh_bind_accept( sshbind, session )

4. Open a putty terminal, which unlocks the *ssh_bind_accept* at step 3

5. Create a new thread and continue terminal dialogue in newly created thread

基本上,我开发的服务器基于这里的示例:How to use libssh as server?

为了支持多个客户端,我有一个侦听器,当创建一个连接时(从ssh_bind_accept返回),我创建一个新线程并在那里继续ssh连接。在派生之后,我创建了新的绑定和会话,并将自己放在ssh_bind accept中等待。问题是,打开第二个终端并不会导致ssh_bind_accept返回。

EN

回答 1

Stack Overflow用户

发布于 2013-10-30 20:51:20

在派生之后,您是否尝试在子进程中执行ssh_bind_free(sshbind)?将侦听器文件描述符同时放在多个进程中可能会导致问题。

Aris

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18513779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档