当我尝试侦听端口时,请求的地址在其上下文中无效

Ehs*_*bar 7 c# sockets port listener

我正在尝试使用网络连接到传感器,传感器的IP 192.168.2.44在端口3000上;

我的代码:

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");
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但是,当我运行此代码时,我收到此错误:

请求的地址在其上下文中无效

usr*_*usr 16

IPAddress.Any听.这似乎是你的目标:

//listen on all local addresses
Run Code Online (Sandbox Code Playgroud)

您指定的收听地址由于某种原因无效.无需指定数字地址.


Mic*_*cke 8

TcpListener从TCP网络客户端,一个给定的端口上的连接监听你的本地计算机上.也就是说,对于传入连接.您的代码将充当各种"服务器".

请求的地址在其上下文中无效

简单来说,这意味着您机器上的任何网络接口都不会使用给定的IP地址.

使用IPAddress.Any听任何IP地址(即网络接口).

但是,可能需要连接到传感器(在端口3000上),而不是相反.

编辑:新的异常只是告诉您有两个应用程序试图侦听相同的接口/端口组合.你有两个同时运行的实例吗?