Let's say I have wifi, ethernet lan, and Hamachi turned on on my PC.
They are all connected.
My applications send data through them.
Terminology question: My applications send data to these network adapters, or network interface controllers or network interfaces. That is these 3 technologies create network adapters (NIC) for my applications to communicate to the network? Which is the correct term (network adapter, network interface, NIC)?
Each of these network adapters (?) is assigned an IP address (one or more).
How does my application know to which adapter to send data? Is there a default adapter selected by the OS, but the application can additionally choose the adapter. I think in Java (and other programming languages) when you create a socket you can specify the local IP address, and this must be one from the addapters's assigned?
This also means the data sent will use the respective IP source address in the IP package depending on the adapter used?