I'm still beating my head against a wall with this.
I added a PING statement which works fine. This tells me that the network connectivity is good.
Wireshark shows TCP SYN packets being sent from the PLC to the Server, but no ACK responses come from the server. However, all other clients I've tried elicit a correct response from the server.
Here's the really strange thing - if I run the PING first, the HTTPCMD succeeds, and continues to succeed for a while. After a period of inactivity it starts failing again, until I PING the server once more.
Is it possible that ARP handling is failing for HTTPCMD but it's working for PING?
Another thing to note is that it works just fine (always) on a different NodeJS server. The server that's failing is an Ubuntu 19.04 box running in a Hyper-V VM on my Win10 box. Once again though, other clients always connect to it just fine - it's just the PLC/this-particular-server combo that's causing a problem.