I'm trying to figure out how a server will distinguish between multiple clients that connect to it via TCP listener, and begin sending UDP messages to a UdpClient.
The TcpListner makes it easy for TCP, because a TcpClient is returned that I can attach to a specific client instance on the server. But how will I handle the UdpClient now since UDP is a connectionless protocol? I am also curious how the TcpClient knows which machine to send data back to in the first place, especially if its sitting behind a router.
I can't trust something like a unique id in udp packet headers, because those can always be forged or stolen.