当我尝试侦听端口时,请求的地址在其上下文中无效
The requested address is not valid in its context when I try to listen a port
我正在尝试使用网络连接到传感器,传感器的 ip 是端口 3000 上的 192.168.2.44
;
我的代码:
byte[] byteReadStream = null; // holds the data in byte buffer
IPEndPoint ipe = new IPEndPoint(IPAddress.Parse("192.168.2.44"), 3000);//listen on all local addresses and 8888 port
TcpListener tcpl = new TcpListener(ipe);
while (true)
{
//infinite loop
tcpl.Start(); // block application until data and connection
TcpClient tcpc = tcpl.AcceptTcpClient();
byteReadStream = new byte[tcpc.Available]; //allocate space
tcpc.GetStream().Read(byteReadStream, 0, tcpc.Available);
Console.WriteLine(Encoding.Default.GetString(byteReadStream) + "\n");
}
但是当我 运行 这段代码时,我得到这个错误:
The requested address is not valid in its context
使用IPAddress.Any
收听。这似乎是你的目标:
//listen on all local addresses
您指定的监听地址由于某种原因无效。无需指定数字地址。
TcpListener
在本地计算机 上的给定端口 上侦听来自 TCP 网络客户端的连接。也就是说,对于 传入 连接。您的代码将充当某种 "server"。
The requested address is not valid in its context
简单来说,这意味着给定的 IP 地址未被您计算机上的任何网络接口使用。
使用IPAddress.Any
监听任何IP地址(即网络接口)。
但是,可能您需要连接到传感器(在端口 3000 上),而不是相反。
编辑: 新异常只是告诉您有两个应用程序试图监听相同的 interface/port 组合。您是否同时有两个实例运行?
此问题的原因之一可能是配置文件中存在 defaultProxy 部分,该部分将通过此设置中提到的代理地址路由每个传出呼叫。确保有一个代理 server/service 在代理地址侦听,或者评论此部分以停止路由。如果应用程序配置文件没有它,并且此错误仍然存在,请检查 machine.config 中的 defaultProxy 部分文件。 machine.config 应该在文件夹 C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config[=19= 中可用].在我们的例子中,它是 machine.config.
中的 defaultProxy
我正在尝试使用网络连接到传感器,传感器的 ip 是端口 3000 上的 192.168.2.44
;
我的代码:
byte[] byteReadStream = null; // holds the data in byte buffer
IPEndPoint ipe = new IPEndPoint(IPAddress.Parse("192.168.2.44"), 3000);//listen on all local addresses and 8888 port
TcpListener tcpl = new TcpListener(ipe);
while (true)
{
//infinite loop
tcpl.Start(); // block application until data and connection
TcpClient tcpc = tcpl.AcceptTcpClient();
byteReadStream = new byte[tcpc.Available]; //allocate space
tcpc.GetStream().Read(byteReadStream, 0, tcpc.Available);
Console.WriteLine(Encoding.Default.GetString(byteReadStream) + "\n");
}
但是当我 运行 这段代码时,我得到这个错误:
The requested address is not valid in its context
使用IPAddress.Any
收听。这似乎是你的目标:
//listen on all local addresses
您指定的监听地址由于某种原因无效。无需指定数字地址。
TcpListener
在本地计算机 上的给定端口 上侦听来自 TCP 网络客户端的连接。也就是说,对于 传入 连接。您的代码将充当某种 "server"。
The requested address is not valid in its context
简单来说,这意味着给定的 IP 地址未被您计算机上的任何网络接口使用。
使用IPAddress.Any
监听任何IP地址(即网络接口)。
但是,可能您需要连接到传感器(在端口 3000 上),而不是相反。
编辑: 新异常只是告诉您有两个应用程序试图监听相同的 interface/port 组合。您是否同时有两个实例运行?
此问题的原因之一可能是配置文件中存在 defaultProxy 部分,该部分将通过此设置中提到的代理地址路由每个传出呼叫。确保有一个代理 server/service 在代理地址侦听,或者评论此部分以停止路由。如果应用程序配置文件没有它,并且此错误仍然存在,请检查 machine.config 中的 defaultProxy 部分文件。 machine.config 应该在文件夹 C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config[=19= 中可用].在我们的例子中,它是 machine.config.
中的 defaultProxy