Socket send requires delay for localhost targetWhat is the difference between a port and a socket?unix domain stream sockets sending more data then it should beWhat is a good buffer size for socket programming?Java Socket Delay continuedProgramming Sockets in C, error to send and receive filesTCP Asynchronous socket slow on receiving server?Unable to close server side socketSocket issue c# client to java serverC TCP sockets, can 'send' return 0 after using select?Socket Send And Receive Buffer

How does the Earth's center produce heat?

Possibility of faking someone's public key

What is the difference between LORD and GOD?

How can I prevent holy aura from a human body from radiating too strongly?

Navigating a quick return to previous employer

How to let other coworkers know that I don't share my coworker's political views?

Are runways booked by airlines to land their planes?

How to make parshape work inside a tikz node?

Time complexity of an algorithm: Is it important to state the base of the logarithm?

Is this homebrew "Cactus Grenade" cantrip balanced?

Co-author wants to put their current funding source in the acknowledgements section because they edited the paper

Is "vegetable base" a common term in English?

The disk image is 497GB smaller than the target device

Storing voxels for a voxel Engine in C++

3 prong range outlet

Is superuser the same as root?

A burglar's sunglasses, a lady's odyssey

Why isn't Tyrion mentioned in 'A song of Ice and Fire'?

“For nothing” = “pour rien”?

First Program Tic-Tac-Toe

Why does splatting create a tuple on the rhs but a list on the lhs?

Why does the hash of infinity have the digits of π?

How to capitalise every letter in odd position as in memes?

Gravitational Force Between Numbers



Socket send requires delay for localhost target


What is the difference between a port and a socket?unix domain stream sockets sending more data then it should beWhat is a good buffer size for socket programming?Java Socket Delay continuedProgramming Sockets in C, error to send and receive filesTCP Asynchronous socket slow on receiving server?Unable to close server side socketSocket issue c# client to java serverC TCP sockets, can 'send' return 0 after using select?Socket Send And Receive Buffer






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;








0















I'm working on a C# server/client project at the moment and have come across a strange problem that took me a while to solve but am not entirely happy with the solution or more precisely why I need it. Essentially I found sending tcp socket messages over 10kbytes to a localhost target required a time delay of 1ms.



As a background, I have a server on a machine that many clients connect into and pass information back and forth which all seems to work fine. I also have clients that are local to the server that also connect in. The issue I faced was that when message sizes went over around ~10kbytes in size the messages would not go through. I only just noticed this because most messages sent were around 1-2kbytes in size, but the client connected on the same machine as the server (localhost) is more of a management client and thus sends/receives more data.



The real problem was the the server (sender) was returning true / success from the C# send commands that data was being sent, however, the receiver indicated only the first chunk (if I buffered) would come through or nothing at all. So I ended up putting wireshark on and saw that even though the send calls completed successfully, no data would actually be sent over the wire (remembering this is on the local loopback interface).



I tried playing with how I am sending data and trying all the different calls (NetworkStream.Write / NetworkStream.WriteAsync / Socket.Send / Socket.SendAsync / Socket.BeginSend) along with buffering the data or sending it all in one hit. Nothing seemed to make a difference until I put a time delay between the send calls in my loop then everything work perfectly (I tested up to a 1.5GB stream of data with no issue).



I also found a delay of anything under 1ms / 10,000 ticks would again cause issues, I would get through so many of the send calls to work then they would just stop again. Setting the TcpClient.NoDelay to true also did not seem to have much impact.



Below is a cut from my sending code as an example with the different send commands I have tried that all have the exact same behavior.



// _client is an abstracted/based off a TcpClient object (the target)
byte[] dataBytes = Serializer.SerializeMessage(message);
int bytesSent = 0;

while (bytesSent < dataBytes.Length)
int bytesToSend = ((dataBytes.Length - bytesSent) < 8192) ? (dataBytes.Length - bytesSent) : 8192;
//_client.Socket.Send(dataBytes, bytesSent, bytesToSend, SocketFlags.Partial);
//_client.NetworkStream.Write(dataBytes, bytesSent, bytesToSend);
//_client.Socket.BeginSend(dataBytes, bytesSent,bytesToSend,SocketFlags.None, ar => int bytes = ((Socket)ar.AsyncState).EndSend(ar);, _client.Socket);
_ = _client.NetworkStream.WriteAsync(dataBytes, bytesSent, bytesToSend);

bytesSent += bytesToSend;
Thread.Sleep(TimeSpan.FromTicks(10000));




So while this works fine now, my question is why is it even needed, from previous experience I always find if you need to "delay" there is something else that is wrong. Also, without the delay, nothing errors out, all the calls report they successfully sent the bytes but wireshark shows no data being transmitted. My only thought would be something in the library detecting it is a local target and using some internal named piped abstracted from me and a buffer fills up somewhere?



I have tried searching for any issue like this for over a week and could not find anything obvious so any insight would be greatly appreciated.










share|improve this question




























    0















    I'm working on a C# server/client project at the moment and have come across a strange problem that took me a while to solve but am not entirely happy with the solution or more precisely why I need it. Essentially I found sending tcp socket messages over 10kbytes to a localhost target required a time delay of 1ms.



    As a background, I have a server on a machine that many clients connect into and pass information back and forth which all seems to work fine. I also have clients that are local to the server that also connect in. The issue I faced was that when message sizes went over around ~10kbytes in size the messages would not go through. I only just noticed this because most messages sent were around 1-2kbytes in size, but the client connected on the same machine as the server (localhost) is more of a management client and thus sends/receives more data.



    The real problem was the the server (sender) was returning true / success from the C# send commands that data was being sent, however, the receiver indicated only the first chunk (if I buffered) would come through or nothing at all. So I ended up putting wireshark on and saw that even though the send calls completed successfully, no data would actually be sent over the wire (remembering this is on the local loopback interface).



    I tried playing with how I am sending data and trying all the different calls (NetworkStream.Write / NetworkStream.WriteAsync / Socket.Send / Socket.SendAsync / Socket.BeginSend) along with buffering the data or sending it all in one hit. Nothing seemed to make a difference until I put a time delay between the send calls in my loop then everything work perfectly (I tested up to a 1.5GB stream of data with no issue).



    I also found a delay of anything under 1ms / 10,000 ticks would again cause issues, I would get through so many of the send calls to work then they would just stop again. Setting the TcpClient.NoDelay to true also did not seem to have much impact.



    Below is a cut from my sending code as an example with the different send commands I have tried that all have the exact same behavior.



    // _client is an abstracted/based off a TcpClient object (the target)
    byte[] dataBytes = Serializer.SerializeMessage(message);
    int bytesSent = 0;

    while (bytesSent < dataBytes.Length)
    int bytesToSend = ((dataBytes.Length - bytesSent) < 8192) ? (dataBytes.Length - bytesSent) : 8192;
    //_client.Socket.Send(dataBytes, bytesSent, bytesToSend, SocketFlags.Partial);
    //_client.NetworkStream.Write(dataBytes, bytesSent, bytesToSend);
    //_client.Socket.BeginSend(dataBytes, bytesSent,bytesToSend,SocketFlags.None, ar => int bytes = ((Socket)ar.AsyncState).EndSend(ar);, _client.Socket);
    _ = _client.NetworkStream.WriteAsync(dataBytes, bytesSent, bytesToSend);

    bytesSent += bytesToSend;
    Thread.Sleep(TimeSpan.FromTicks(10000));




    So while this works fine now, my question is why is it even needed, from previous experience I always find if you need to "delay" there is something else that is wrong. Also, without the delay, nothing errors out, all the calls report they successfully sent the bytes but wireshark shows no data being transmitted. My only thought would be something in the library detecting it is a local target and using some internal named piped abstracted from me and a buffer fills up somewhere?



    I have tried searching for any issue like this for over a week and could not find anything obvious so any insight would be greatly appreciated.










    share|improve this question
























      0












      0








      0








      I'm working on a C# server/client project at the moment and have come across a strange problem that took me a while to solve but am not entirely happy with the solution or more precisely why I need it. Essentially I found sending tcp socket messages over 10kbytes to a localhost target required a time delay of 1ms.



      As a background, I have a server on a machine that many clients connect into and pass information back and forth which all seems to work fine. I also have clients that are local to the server that also connect in. The issue I faced was that when message sizes went over around ~10kbytes in size the messages would not go through. I only just noticed this because most messages sent were around 1-2kbytes in size, but the client connected on the same machine as the server (localhost) is more of a management client and thus sends/receives more data.



      The real problem was the the server (sender) was returning true / success from the C# send commands that data was being sent, however, the receiver indicated only the first chunk (if I buffered) would come through or nothing at all. So I ended up putting wireshark on and saw that even though the send calls completed successfully, no data would actually be sent over the wire (remembering this is on the local loopback interface).



      I tried playing with how I am sending data and trying all the different calls (NetworkStream.Write / NetworkStream.WriteAsync / Socket.Send / Socket.SendAsync / Socket.BeginSend) along with buffering the data or sending it all in one hit. Nothing seemed to make a difference until I put a time delay between the send calls in my loop then everything work perfectly (I tested up to a 1.5GB stream of data with no issue).



      I also found a delay of anything under 1ms / 10,000 ticks would again cause issues, I would get through so many of the send calls to work then they would just stop again. Setting the TcpClient.NoDelay to true also did not seem to have much impact.



      Below is a cut from my sending code as an example with the different send commands I have tried that all have the exact same behavior.



      // _client is an abstracted/based off a TcpClient object (the target)
      byte[] dataBytes = Serializer.SerializeMessage(message);
      int bytesSent = 0;

      while (bytesSent < dataBytes.Length)
      int bytesToSend = ((dataBytes.Length - bytesSent) < 8192) ? (dataBytes.Length - bytesSent) : 8192;
      //_client.Socket.Send(dataBytes, bytesSent, bytesToSend, SocketFlags.Partial);
      //_client.NetworkStream.Write(dataBytes, bytesSent, bytesToSend);
      //_client.Socket.BeginSend(dataBytes, bytesSent,bytesToSend,SocketFlags.None, ar => int bytes = ((Socket)ar.AsyncState).EndSend(ar);, _client.Socket);
      _ = _client.NetworkStream.WriteAsync(dataBytes, bytesSent, bytesToSend);

      bytesSent += bytesToSend;
      Thread.Sleep(TimeSpan.FromTicks(10000));




      So while this works fine now, my question is why is it even needed, from previous experience I always find if you need to "delay" there is something else that is wrong. Also, without the delay, nothing errors out, all the calls report they successfully sent the bytes but wireshark shows no data being transmitted. My only thought would be something in the library detecting it is a local target and using some internal named piped abstracted from me and a buffer fills up somewhere?



      I have tried searching for any issue like this for over a week and could not find anything obvious so any insight would be greatly appreciated.










      share|improve this question














      I'm working on a C# server/client project at the moment and have come across a strange problem that took me a while to solve but am not entirely happy with the solution or more precisely why I need it. Essentially I found sending tcp socket messages over 10kbytes to a localhost target required a time delay of 1ms.



      As a background, I have a server on a machine that many clients connect into and pass information back and forth which all seems to work fine. I also have clients that are local to the server that also connect in. The issue I faced was that when message sizes went over around ~10kbytes in size the messages would not go through. I only just noticed this because most messages sent were around 1-2kbytes in size, but the client connected on the same machine as the server (localhost) is more of a management client and thus sends/receives more data.



      The real problem was the the server (sender) was returning true / success from the C# send commands that data was being sent, however, the receiver indicated only the first chunk (if I buffered) would come through or nothing at all. So I ended up putting wireshark on and saw that even though the send calls completed successfully, no data would actually be sent over the wire (remembering this is on the local loopback interface).



      I tried playing with how I am sending data and trying all the different calls (NetworkStream.Write / NetworkStream.WriteAsync / Socket.Send / Socket.SendAsync / Socket.BeginSend) along with buffering the data or sending it all in one hit. Nothing seemed to make a difference until I put a time delay between the send calls in my loop then everything work perfectly (I tested up to a 1.5GB stream of data with no issue).



      I also found a delay of anything under 1ms / 10,000 ticks would again cause issues, I would get through so many of the send calls to work then they would just stop again. Setting the TcpClient.NoDelay to true also did not seem to have much impact.



      Below is a cut from my sending code as an example with the different send commands I have tried that all have the exact same behavior.



      // _client is an abstracted/based off a TcpClient object (the target)
      byte[] dataBytes = Serializer.SerializeMessage(message);
      int bytesSent = 0;

      while (bytesSent < dataBytes.Length)
      int bytesToSend = ((dataBytes.Length - bytesSent) < 8192) ? (dataBytes.Length - bytesSent) : 8192;
      //_client.Socket.Send(dataBytes, bytesSent, bytesToSend, SocketFlags.Partial);
      //_client.NetworkStream.Write(dataBytes, bytesSent, bytesToSend);
      //_client.Socket.BeginSend(dataBytes, bytesSent,bytesToSend,SocketFlags.None, ar => int bytes = ((Socket)ar.AsyncState).EndSend(ar);, _client.Socket);
      _ = _client.NetworkStream.WriteAsync(dataBytes, bytesSent, bytesToSend);

      bytesSent += bytesToSend;
      Thread.Sleep(TimeSpan.FromTicks(10000));




      So while this works fine now, my question is why is it even needed, from previous experience I always find if you need to "delay" there is something else that is wrong. Also, without the delay, nothing errors out, all the calls report they successfully sent the bytes but wireshark shows no data being transmitted. My only thought would be something in the library detecting it is a local target and using some internal named piped abstracted from me and a buffer fills up somewhere?



      I have tried searching for any issue like this for over a week and could not find anything obvious so any insight would be greatly appreciated.







      c# sockets asynchronous networkstream






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Mar 23 at 23:15









      NathanNathan

      456




      456






















          2 Answers
          2






          active

          oldest

          votes


















          0















          from previous experience I always find if you need to "delay" there is something else that is wrong.




          Righto. Here I suspect you're assuming that a Read on the socket will return a complete message.



          But TCP/IP is a streaming protocol, and doesn't include any notion of Messages. To successfully use TCP/IP directly, you must define a "message framing protocol", to communicate to the remote host how many bytes to expect. I don't see you writing anything before the message, so I suspect that's what's missing.



          The simple solution that many people use is to always send a 4-byte integer at the beginning of a message indicating the number of bytes that will be sent. Then the reader can perform a 4-byte read, followed by a read loop until the expected number of bytes are read.






          share|improve this answer























          • So the issue does not seem to have anything to do with the reading/receiving end as the send calls simply do not send anything over the wire according to wireshark. But just to confirm my Serializer.SerializeMessage(message) method actually serialises my message object into a bit stream that has header including an ID and payload length bytes at the front. Stress testing with 1000 connected clients sending messages simultaneously works fine.

            – Nathan
            Mar 24 at 5:58












          • Can you produce a minimal repro? I’m not dure WireShark can see localhost traffic, as it never hits the network adapter.

            – David Browne - Microsoft
            Mar 24 at 14:35


















          0














          So the issue turned out to be a problem with something on the computer itself (or rather on a number of our dev boxes) that affected any service being hosted/connected on a localhost binding. This included a number of network services including even IISExpress and IIS proper if the hosting was local. This resulting in any data over ~10kbytes in size never being sent/received.



          After days of trying to work out what was affecting localhost connections we ended up rebuilding our dev boxes and the problem is now gone (albeit we still don't know why/what caused the issue).






          share|improve this answer























            Your Answer






            StackExchange.ifUsing("editor", function ()
            StackExchange.using("externalEditor", function ()
            StackExchange.using("snippets", function ()
            StackExchange.snippets.init();
            );
            );
            , "code-snippets");

            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "1"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55319247%2fsocket-send-requires-delay-for-localhost-target%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0















            from previous experience I always find if you need to "delay" there is something else that is wrong.




            Righto. Here I suspect you're assuming that a Read on the socket will return a complete message.



            But TCP/IP is a streaming protocol, and doesn't include any notion of Messages. To successfully use TCP/IP directly, you must define a "message framing protocol", to communicate to the remote host how many bytes to expect. I don't see you writing anything before the message, so I suspect that's what's missing.



            The simple solution that many people use is to always send a 4-byte integer at the beginning of a message indicating the number of bytes that will be sent. Then the reader can perform a 4-byte read, followed by a read loop until the expected number of bytes are read.






            share|improve this answer























            • So the issue does not seem to have anything to do with the reading/receiving end as the send calls simply do not send anything over the wire according to wireshark. But just to confirm my Serializer.SerializeMessage(message) method actually serialises my message object into a bit stream that has header including an ID and payload length bytes at the front. Stress testing with 1000 connected clients sending messages simultaneously works fine.

              – Nathan
              Mar 24 at 5:58












            • Can you produce a minimal repro? I’m not dure WireShark can see localhost traffic, as it never hits the network adapter.

              – David Browne - Microsoft
              Mar 24 at 14:35















            0















            from previous experience I always find if you need to "delay" there is something else that is wrong.




            Righto. Here I suspect you're assuming that a Read on the socket will return a complete message.



            But TCP/IP is a streaming protocol, and doesn't include any notion of Messages. To successfully use TCP/IP directly, you must define a "message framing protocol", to communicate to the remote host how many bytes to expect. I don't see you writing anything before the message, so I suspect that's what's missing.



            The simple solution that many people use is to always send a 4-byte integer at the beginning of a message indicating the number of bytes that will be sent. Then the reader can perform a 4-byte read, followed by a read loop until the expected number of bytes are read.






            share|improve this answer























            • So the issue does not seem to have anything to do with the reading/receiving end as the send calls simply do not send anything over the wire according to wireshark. But just to confirm my Serializer.SerializeMessage(message) method actually serialises my message object into a bit stream that has header including an ID and payload length bytes at the front. Stress testing with 1000 connected clients sending messages simultaneously works fine.

              – Nathan
              Mar 24 at 5:58












            • Can you produce a minimal repro? I’m not dure WireShark can see localhost traffic, as it never hits the network adapter.

              – David Browne - Microsoft
              Mar 24 at 14:35













            0












            0








            0








            from previous experience I always find if you need to "delay" there is something else that is wrong.




            Righto. Here I suspect you're assuming that a Read on the socket will return a complete message.



            But TCP/IP is a streaming protocol, and doesn't include any notion of Messages. To successfully use TCP/IP directly, you must define a "message framing protocol", to communicate to the remote host how many bytes to expect. I don't see you writing anything before the message, so I suspect that's what's missing.



            The simple solution that many people use is to always send a 4-byte integer at the beginning of a message indicating the number of bytes that will be sent. Then the reader can perform a 4-byte read, followed by a read loop until the expected number of bytes are read.






            share|improve this answer














            from previous experience I always find if you need to "delay" there is something else that is wrong.




            Righto. Here I suspect you're assuming that a Read on the socket will return a complete message.



            But TCP/IP is a streaming protocol, and doesn't include any notion of Messages. To successfully use TCP/IP directly, you must define a "message framing protocol", to communicate to the remote host how many bytes to expect. I don't see you writing anything before the message, so I suspect that's what's missing.



            The simple solution that many people use is to always send a 4-byte integer at the beginning of a message indicating the number of bytes that will be sent. Then the reader can perform a 4-byte read, followed by a read loop until the expected number of bytes are read.







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Mar 23 at 23:35









            David Browne - MicrosoftDavid Browne - Microsoft

            18.9k2927




            18.9k2927












            • So the issue does not seem to have anything to do with the reading/receiving end as the send calls simply do not send anything over the wire according to wireshark. But just to confirm my Serializer.SerializeMessage(message) method actually serialises my message object into a bit stream that has header including an ID and payload length bytes at the front. Stress testing with 1000 connected clients sending messages simultaneously works fine.

              – Nathan
              Mar 24 at 5:58












            • Can you produce a minimal repro? I’m not dure WireShark can see localhost traffic, as it never hits the network adapter.

              – David Browne - Microsoft
              Mar 24 at 14:35

















            • So the issue does not seem to have anything to do with the reading/receiving end as the send calls simply do not send anything over the wire according to wireshark. But just to confirm my Serializer.SerializeMessage(message) method actually serialises my message object into a bit stream that has header including an ID and payload length bytes at the front. Stress testing with 1000 connected clients sending messages simultaneously works fine.

              – Nathan
              Mar 24 at 5:58












            • Can you produce a minimal repro? I’m not dure WireShark can see localhost traffic, as it never hits the network adapter.

              – David Browne - Microsoft
              Mar 24 at 14:35
















            So the issue does not seem to have anything to do with the reading/receiving end as the send calls simply do not send anything over the wire according to wireshark. But just to confirm my Serializer.SerializeMessage(message) method actually serialises my message object into a bit stream that has header including an ID and payload length bytes at the front. Stress testing with 1000 connected clients sending messages simultaneously works fine.

            – Nathan
            Mar 24 at 5:58






            So the issue does not seem to have anything to do with the reading/receiving end as the send calls simply do not send anything over the wire according to wireshark. But just to confirm my Serializer.SerializeMessage(message) method actually serialises my message object into a bit stream that has header including an ID and payload length bytes at the front. Stress testing with 1000 connected clients sending messages simultaneously works fine.

            – Nathan
            Mar 24 at 5:58














            Can you produce a minimal repro? I’m not dure WireShark can see localhost traffic, as it never hits the network adapter.

            – David Browne - Microsoft
            Mar 24 at 14:35





            Can you produce a minimal repro? I’m not dure WireShark can see localhost traffic, as it never hits the network adapter.

            – David Browne - Microsoft
            Mar 24 at 14:35













            0














            So the issue turned out to be a problem with something on the computer itself (or rather on a number of our dev boxes) that affected any service being hosted/connected on a localhost binding. This included a number of network services including even IISExpress and IIS proper if the hosting was local. This resulting in any data over ~10kbytes in size never being sent/received.



            After days of trying to work out what was affecting localhost connections we ended up rebuilding our dev boxes and the problem is now gone (albeit we still don't know why/what caused the issue).






            share|improve this answer



























              0














              So the issue turned out to be a problem with something on the computer itself (or rather on a number of our dev boxes) that affected any service being hosted/connected on a localhost binding. This included a number of network services including even IISExpress and IIS proper if the hosting was local. This resulting in any data over ~10kbytes in size never being sent/received.



              After days of trying to work out what was affecting localhost connections we ended up rebuilding our dev boxes and the problem is now gone (albeit we still don't know why/what caused the issue).






              share|improve this answer

























                0












                0








                0







                So the issue turned out to be a problem with something on the computer itself (or rather on a number of our dev boxes) that affected any service being hosted/connected on a localhost binding. This included a number of network services including even IISExpress and IIS proper if the hosting was local. This resulting in any data over ~10kbytes in size never being sent/received.



                After days of trying to work out what was affecting localhost connections we ended up rebuilding our dev boxes and the problem is now gone (albeit we still don't know why/what caused the issue).






                share|improve this answer













                So the issue turned out to be a problem with something on the computer itself (or rather on a number of our dev boxes) that affected any service being hosted/connected on a localhost binding. This included a number of network services including even IISExpress and IIS proper if the hosting was local. This resulting in any data over ~10kbytes in size never being sent/received.



                After days of trying to work out what was affecting localhost connections we ended up rebuilding our dev boxes and the problem is now gone (albeit we still don't know why/what caused the issue).







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Mar 30 at 8:44









                NathanNathan

                456




                456



























                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55319247%2fsocket-send-requires-delay-for-localhost-target%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    SQL error code 1064 with creating Laravel foreign keysForeign key constraints: When to use ON UPDATE and ON DELETEDropping column with foreign key Laravel error: General error: 1025 Error on renameLaravel SQL Can't create tableLaravel Migration foreign key errorLaravel php artisan migrate:refresh giving a syntax errorSQLSTATE[42S01]: Base table or view already exists or Base table or view already exists: 1050 Tableerror in migrating laravel file to xampp serverSyntax error or access violation: 1064:syntax to use near 'unsigned not null, modelName varchar(191) not null, title varchar(191) not nLaravel cannot create new table field in mysqlLaravel 5.7:Last migration creates table but is not registered in the migration table

                    용인 삼성생명 블루밍스 목차 통계 역대 감독 선수단 응원단 경기장 같이 보기 외부 링크 둘러보기 메뉴samsungblueminx.comeh선수 명단용인 삼성생명 블루밍스용인 삼성생명 블루밍스ehsamsungblueminx.comeheheheh

                    155 수학 과학 기타 둘러보기 메뉴eh추가해eh문서를 완성해