I am trying to connect to a sensor using network, the sensor's ip is 192.168.2.44
on port 3000;
My Code:
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");
}
But when I run this code, I get this error:
The requested address is not valid in its context
Use IPAddress.Any
to listen. This seems to be your goal:
//listen on all local addresses
The listening address you have specified is invalid for some reason. There is no need to specify a numeric address.
The TcpListener
listens for connections from TCP network client, on a given port on your local machine. That is, for incoming connections. Your code will be acting as a "server" of sorts.
The requested address is not valid in its context
Simply, it means that the IP address given is not used by any network interface on your machine.
Use IPAddress.Any
to listen on any IP address (i.e. network interface).
However, it might be the case that you need to connect to the sensor (on port 3000), not the other way around.
EDIT: The new exception just tells you that you have two applications trying to listen to the same interface/port combination. Do you have two instances running at the same time?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With