Well, I'm coding a client in VB, the multithreading in VB is real creepy, if you want to go use hashing or other high cpu operations, forget it. Then you have to go use C++ed dlls.
But actually it is possible in VB too.
If you want to start learning a complete new language from the scratch just to code a client, well, its not bad but much work.
If you choose between Java and C#, I would use Java.
C# is just a kinda cheap (OK, the .CRAP framework wasnt that cheap) clone of Java although *they* say it is based on C++.
Java is kind free, so you dont get addicted to any greedy bigsized ultra-capitalistic corporations, so I would choose java