Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

The requested address is not valid in its context when I try to listen a port

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");
}

enter image description here

But when I run this code, I get this error:

The requested address is not valid in its context

like image 508
Ehsan Akbar Avatar asked Jun 17 '15 11:06

Ehsan Akbar


2 Answers

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.

like image 75
usr Avatar answered Sep 29 '22 01:09

usr


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?

like image 39
Micke Avatar answered Sep 29 '22 01:09

Micke