Если вы хотите использовать Java в браузере, единственный способ - это апплеты.
Но обычный (ненадежный) апплет:
- не может получить доступ к файлам в локальной системе
- не может слушать ни на каких портах
- может открывать сокеты только на том сервере, с которого он пришел.
Это по соображениям безопасности: апплет не должен быть в состоянии причинить вред пользователю, на компьютере которого он работает.
Итак, если вы хотите сделать то, что сказали, вам нужно, чтобы пользователь доверял вам и давал вам больше разрешений. Для доступа к файлу можно использовать JNLP API (т.е. запустить апплет с файлом jnlp, а затем использовать API в javax.jnlp , особенно FileOpenService и FileSaveService. Затем пользователю необходимо подтвердите доступ перед выбором файла с помощью средства выбора файлов.
Это по-прежнему не помогает для доступа к сети - ваши апплеты должны иметь подходящие SocketPermissions там, если вы не хотите проксировать все на своем сервере (который не будет одноранговым). Для этого вам нужно подписать свой апплет и запросить все разрешения у пользователя (я думаю, что нет более детального способа предоставить только необходимые SocketPermissions). Вы можете сделать это в jnlp-файле.