皆さんのご指摘通り、今度はTCPでファイルを送受信しようとしたのですが、
TCPを使ってもやはり重いファイルは送信できません。
http://cdrtest.hp.infoseek.co.jp/cgi-bin/snup/src/VisualVision0051.gif
このようなエラーです。

送信側ではファイルを開いてBase64でエンコード、これにファイル名と区切り文字として「?」を加えて一つのファイルにします。
つまり

            ファイル名+"?"+Base64でエンコード済みの送信ファイルデータ

という形式になるなります。これをバイト配列にしてストリームに乗せてあげてるのですが、
どうも受信側で逆処理、つまりバイト配列からデコードして、これをファイル名とBase64のデーターに分けます。
そしてBase64にエンコードされたデーターをデコードするときに上のエラーがでるんです。

やはり長さが原因だと思うのですが・・・