I’m assuming that you’re using wireless G given the overall slow speeds you’re experiencing, even over the internet (~12Mbps), and that your ISP is providing far more bandwidth for your wired devices.
What many ppl don't realize is that unlike a wired connection, wireless is queued, serialized. When using wire, your router can communicate w/ both the client and server simultaneously. But wireless is a completely different story. Wireless is a shared resource, and only two wireless stations can be communicating at any given time (it's like a walkie-talkie, everyone takes turns). So whenever the wireless router is communicating w/ the client, the other wireless connection between the router and the server is in a WAIT state, and vice versa. So your "effective" bandwidth is roughly HALVED.
This isn’t unique to client/server situations. It happens ANYTIME you have more than one wireless station competing for the same wireless router. Try downloading from the internet from two wireless clients at the same time and the same thing will happen. Add a third wireless client and speeds are reduced to roughly a third. And so on.
That’s just a limitation of using wireless (and why except for the convenience, wireless sucks).
That said, if you’re using MIMO based wireless routers and adapters, that can help. MIMO devices use multiple channels to support greater throughput. But under circumstances such as yours, it’s theoretically possible to have each channel dedicated to different communications paths (i.e., router to client and router to server). I say theoretically because it’s often the case that ppl don’t have MIMO devices, or only have a MIMO router but not a MIMO compatible wireless adapter, or they proves incompatible, etc.
But putting MIMO aside for the moment, that’s the fundamental problem. If you need the speed, either stick w/ wire (at least for one side), or perhaps try using a second wireless adapter for each machine and ad hoc mode. That eliminates the hop to the wireless router.