Arducopter UDP port interrupted by TCP connection

I’m using Unity as the physics engine for a simulated quadcopter drone. It interfaces with arducopter via a UDP socket on ports 9002 and 9003. My script sends the drone data - position, orientation, motion vector - and gets back the forces that should be applied to the motors to achieve the flight plan.

This works fine.

I’m also sending images from the drone cameras in Unity to another program. This is done with a TCP client that connects to a TCP server on port 8010 and continuously sends the byte array containing the images.

Here is the problem:
As soon as I’m starting the TCP connection, arducopter gets NaN and infinite values on its UDP link, resulting in communication loss and intense human frustration.

The ports are not the same. The protocol is not the same. Why does data sent on one channel interfere with another channel?