I have an issue with a simple TCP connection between two PCs (both Windows XP SP3) connected by direct wire to each other. These PCs have IP address 10.10.10.1 (server) and 10.10.10.2 on the network adapters used for the direct link.
Below you can see Wireshark screen shots which show the problems we see after an ARP broadcast has been sent from the client. This causes a Windows Socket error 10035 on our non-blocking connection and only after about 1 or more seconds do we receive a FD_WRITE event telling us we can sent again on e.g. the client.
This behaviour is not good for our scenario, but why does communication hang for so long? And what solutions are there? Besides adding a static entry to the ARP cache, which we would like to avoid.