Ammar Muhi ud din
Ammar Muhi ud din

Reputation: 45

The requested address is not valid in its context when listen data from other machine

hello i am using tcp ip communication using c# when my code listen from IP then its give me error message the requested address is not valid in its context. here is the code.

 TcpListener server = null;
        try
        {
            // Set the TcpListener on port 13000.
            Int32 port = 5555;
            IPAddress localAddr = IPAddress.Parse("10.3.0.234");

            // TcpListener server = new TcpListener(port);
            server = new TcpListener(localAddr, port);

            // Start listening for client requests.
            server.Start();

            // Buffer for reading data
            Byte[] bytes = new Byte[256];
            String data = null;

            // Enter the listening loop.
            while (true)
            {
                Console.Write("Waiting for a connection... ");

                // Perform a blocking call to accept requests.
                // You could also user server.AcceptSocket() here.
                TcpClient client = server.AcceptTcpClient();
                Console.WriteLine("Connected!");

                data = null;

                // Get a stream object for reading and writing
                NetworkStream stream = client.GetStream();

                int i;

                // Loop to receive all the data sent by the client.
                while ((i = stream.Read(bytes, 0, bytes.Length)) != 0)
                {
                    // Translate data bytes to a ASCII string.
                    data = System.Text.Encoding.ASCII.GetString(bytes, 0, i);
                    Console.WriteLine("Received: {0}", data);

                    // Process the data sent by the client.
                    data = data.ToUpper();

                    byte[] msg = System.Text.Encoding.ASCII.GetBytes(data);
                    Console.WriteLine("Sent Data:" + msg);
                    // Send back a response.
                  //  stream.Write(msg, 0, msg.Length);
                 //   Console.WriteLine("Sent: {0}", data);
                }

                // Shutdown and end connection
                client.Close();
            }
        }
        catch (SocketException e)
        {
            Console.WriteLine("SocketException: {0}", e);
        }
        finally
        {
            // Stop listening for new clients.
            server.Stop();
        }

actually this ip is configured in machine where machine send results. actually i already seen many answers of same questions but i dont know where to change IPAddress.Any etc can any one give me answer by writing code how to communicate machine through tcp ip protocol thank you.

Upvotes: 2

Views: 13280

Answers (1)

TheGeneral
TheGeneral

Reputation: 81503

Basically, the error

The requested address is not valid in its context

Means that the IP Address given is not used by any network interface on your machine. In short you will probably just need to use IPAddress.Any

Exmaple

server = new TcpListener(IPAddress.Any, port);

Further reading

TcpListener Constructor (IPAddress, Int32)

Initializes a new instance of the TcpListener class that listens for incoming connection attempts on the specified local IP address and port number. Remarks If you do not care which local address is assigned, specify IPAddress.Any for the localaddr parameter, and the underlying service provider will assign the most appropriate network address

IPAddress.Any

Provides an IP address that indicates that the server must listen for client activity on all network interfaces.

Upvotes: 1

Related Questions