Автоматическое определение кодировки клиента в Java-чате

Структура системы в кратце:

есть апплет чата

есть java-сервер, посредством которого апплеты чата общаются друг с другом.

Трабл: нужно, чтобы, когда происходит коннект чата с сервером, на сервере при открытии inputstream сокета выставлялась правильная кодовая страница (т.е. код страницы (вроде Cp1251) должен передаваться апплетом серверу). Однако для того, чтобы что-то передать на сервер, нужно сначала проинициализировать сокет. Т.е. закмнутый круг - кодовую страницу нужно передать до инициализации, но передать ее можно только после инициализации.

Плохо, что в Джаве нельзя менять encoding после открытия потока....

Пробовал заводить еще один сокет и по нему передавать кодовую страницу и имя пользователя. Но это ничего не дало, поотму что при последующем создании сокета, отвечающего за чат, нужно сначала как-то узнать имя пользователя, т.е. опять замкнутый круг. Сохранять IP-ник (т.е. определять пользователя не по имени, а по IP) в данной задаче нельзя, т.к. нужно поддерживать пользователей с динамическим IP.