I have 2 applications: Xamarin.Android client app that send value from SeekBar over Wifi and WinForms server that receive this value in real time. Everything works good but every time after ~40sec of data transferring android app throws System.Net.Sockets.SocketException with message "Too many open files".
My server code thats receive data:
    public void StartReceiving()
    {
        IPAddress localAdd = IPAddress.Parse(SERVER_IP);
        TcpListener listener = new TcpListener(localAdd, PORT_NO);
        listener.Start();
        while (true)
        {
            Socket client = listener.AcceptSocket();
            client.NoDelay = true;
            var childSocketThread = new Thread( () =>
            {
                byte[] datareceived = new byte[1];
                int size = client.Receive(datareceived);
                for (int i = 0; i < size; i++)
                {
                    Console.WriteLine(datareceived[0].ToString());
                }
                Console.WriteLine();
                //client.Close();
            });
            childSocketThread.Start();
        }
    }
Client code which sends value from SeekBar:
    private void Seek1_ProgressChanged(object sender, SeekBar.ProgressChangedEventArgs e)
    {
        TcpClient client = new TcpClient(SERVER_IP, PORT_NO);
        NetworkStream nwStream = client.GetStream();
        byte[] bytesToSend = new byte[1];
        bytesToSend[0] = Convert.ToByte(e.Progress);
        nwStream.Write(bytesToSend, 0, bytesToSend.Length);
    }
So my question is, what causes this problem and how can I solve it?
 
    