WiFiでPCからAndroidに作業をさせるようなアプリを作っています。

サーバ側をAndroid、クライアント側をWindowsXP、IPとPort固定で接続しています。
クライアントからサーバに接続しようとすると、初回はだいたいうまくいくのですが
BindException: address already in useが出て接続できない時があります。
ServerSocketクラスのsetReuseAddressやsetSoLingerなどのメソッドを試してみましたが
それでも接続できないことがあります。
Java(というかTCP)の仕様なのでしょうか?
希望としては接続・切断を繰り返しても問題なく接続できるようにしたいのですが、、
いい方法があれば教えてください。