我目前正在研究与SSH服务器通信的客户端.一切都运行良好,但是,因为服务器回答很慢,我不得不等待它发送数据.我有两个选择,我想就什么是等待服务器的最有效方法提出建议.
选择#1:
while (!(ssh_channel_poll(*sshChannel,0)))
;
Run Code Online (Sandbox Code Playgroud)
选择#2:
while (!(ssh_channel_poll(*sshChannel,0)))
sleep(1);
Run Code Online (Sandbox Code Playgroud)
两种选择都是不可取的 通常,您将使用阻止读取.我认为它看起来像这样(因为你说你在等待服务器):
while (!ssh_channel_poll(...)) { ... }
ssh_channel_read(...);
Run Code Online (Sandbox Code Playgroud)
在这种情况下,这poll是不必要的.只需确保SSH连接是阻塞连接,read如果没有可用数据,该功能将等待数据可用.
// This is all you need.
ssh_channel_read(...);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
759 次 |
| 最近记录: |