1
我使用libssh 5.5實現了一個SSH服務器。 運行連接到端口22上的服務器的單個ssh客戶端,一切正常。 當我嘗試連接第二個客戶端(我使用PUTTY ssh終端作爲客戶端)時出現問題。在ssh_bind_accept中等待客戶端連接的服務器線程未被激活,並且新開啓的(第二個)終端明顯「死亡」(第一個開放的 終端工作正常)。ssh多線程服務器在ssh_bind_accept中保持阻塞
我不知道是否有一些重要的設置,我錯過了。
下面是我進行電話:
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返回。
這不應該是一個評論嗎? –