why does the the receiver of my packet need to bind a socket to a port to talk to me
It doesn't. It needs to bind a socket to a port to listen for incoming connections. Then you connect to it, then it accepts a connected socket, then it talks to you.
but i don't
There is an automatic bind when you connect.