You either bind(2) to each interface address and manage multiple sockets, or let the kernel do the implicit source IP assignment with INADDR_ANY. There is no other way.
My question would be - why do you need this? Is normal IP routing not working for you?