How much data can send over socket at one time?

when I send 2800 byte data its work fine but when I send over 2800 byte ,then i am unable to get same data whatever i send from my sample application. so there is any buffer limit for data transmission over socket.

Did you once try to call WSAGetLastError after the transmission failed? Could it be you get a WSAMESSAGESIZE error as documented on the send MSDN page?

No i m not using WSAGetLastError. i am sending 4000 byte on a particular port,which is open for accept data from sample application. My question is , when i m sending 2800 byte on port its work fine(i.e data same whatever i send i got it) but when i m sending 4000 byte on port,some data break(i.e. data is not same what i send from my sample application some data missing.) Is there any limit for data on socket.
this is my code ,which is used to receive data from sample application

          TcpClient tcpClient = (TcpClient)client;
            NetworkStream clientStream = tcpClient.GetStream();
            
            byte[] message = new byte[4095];
            int bytesRead;

            while (true)
            {
                bytesRead = 0;
               // message = new byte[5000];
                try
                {
                    //blocks until a client sends a message
                   
                    bytesRead = clientStream.Read(message, 0, 4095);
                   
                }
                catch
                {
                    //a socket error has occured
                    break;
                }
                finally
                { 
                    Thread.Sleep(10);
                }
                if (bytesRead == 0)
                {
                    //the client has disconnected from the server
                    break;
                }

                //message has successfully been received
                ASCIIEncoding encoder = new ASCIIEncoding();
                data = string.Empty;
                data = encoder.GetString(message, 0, bytesRead);

                if (data.Length != 0)
                {
                    ShowData(data);//// data used in logic 
                        
                }

            }

            tcpClient.Close();

This code you send does not help me much. I will need to get full working setup and then I can help you debug it. Please attach the code that reproduces the issue with client and server.