C# 在短时间不活动后,连接到netcat实例的NetworkStream.Read()引发IOException?
我有一个C# 在短时间不活动后,连接到netcat实例的NetworkStream.Read()引发IOException?,c#,.net,powershell,C#,.net,Powershell,我有一个NetworkStream对象,它连接到一个远程netcat实例。一切正常,我在键盘上打字,数据在主机之间传输 $serverStream.Read($bytes, 0, $bytes.Length)) 但是,在大约60秒的不活动之后,我在Read()中收到以下错误(IOException)。阅读文档告诉我,当套接字关闭时,会抛出IOException 我经常使用netcatnetcat,从未体验过它会断开会话。那么,我想问题与网络流有关吧 如何防止$serverStream.Read
NetworkStream
对象,它连接到一个远程netcat
实例。一切正常,我在键盘上打字,数据在主机之间传输
$serverStream.Read($bytes, 0, $bytes.Length))
但是,在大约60秒的不活动之后,我在Read()
中收到以下错误(IOException
)。阅读文档告诉我,当套接字关闭时,会抛出IOException
我经常使用netcat
netcat,从未体验过它会断开会话。那么,我想问题与网络流有关吧
如何防止$serverStream.Read()
引发异常,而只是等待数据可用(保持会话完整)
网络流:
Netcat 你确定没有设置超时吗 网络流 您可以使用以下行设置网络流的读取超时: networkStream.ReadTimeout=毫秒
也许这会帮助你:
谢谢,我刚刚检查了我的
netcat
。它支持-w timeout
选项,但默认值为无限。但是,networkStream.ReadTimeout
的结果是100000。我可以向您保证,我的40行PowerShell代码中没有设置任何超时???默认值为无穷大(请参阅文档)。我的NetworkStream
是否可以从System.Net.HttpWebRequest
派生?一种可能是发送保持活动状态的消息,以确保它不会断开连接。要查找问题,请尝试连接到另一台服务器,看看它是否仍然存在。PS:networkstream使用套接字
Exception calling "Read" with "3" argument(s): "Unable to read data from the transport connection: A connection attempt failed because the connected party did not properly respond after a period of time, or establishe
d connection failed because connected host has failed to respond."
At C:\Users\bd6164\Desktop\phishing_revsh.ps1:31 char:9
+ while (($i = $serverStream.Read($bytes, 0, $bytes.Length)) -ne 0) {
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : IOException