Do ports on both ends really need to be open to establish a 2-way connection?

Joseph Nagy's icon

I am using [jit.net.send] and [jit.net.recv]. This is confusing to me because I have run game servers off my PC and had friends connect to me without them having to open their own ports for this to work. But right now I am only able to receive information from a friend because I have my port opened. Is there no way for me to send information back without them opening a port?