You just should be closer to your router.
If you happen to have an Android phone, you can try to set up WiFi tethering on it, and connect both your 3DS and your PC to its network. This will give a good speed and 99% success rate.
It's a problem with my app, which fails if a timeout happens when transferring (a data packet reaching after a lot of time). And in your case, it seems the connection is lost 3DS side too, since FBI gives you that disconnected error.
If you don't have an Android phone, all you can do is getting closer to your router, or retry when there's not so much network activity in your place.
I'm already working on fixing the issue with Socket Punch, so that if it disconnects briefly, the transfer continues after reconnecting. Although, I can't do much for the FBI side if it gets disconnected.