Многопоточная передача файлов Java Socket зависает после загрузкиJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Многопоточная передача файлов Java Socket зависает после загрузки

Сообщение Anonymous »


Я реализовал серверно-клиентскую программу с использованием Java Socket и многопоточности. Программа позволяет клиентам отправлять файлы на сервер, просматривать файлы и загружать их. Но у меня возникла проблема: когда мой клиент загружает файл, программа/интерфейс зависает, и клиент не может выполнить ни одну операцию. Не могу просмотреть, скачать или загрузить. Но файл правильно отправляется на сервер. Кто-нибудь знает, что происходит??

Мой клиент

import javax.swing.*; импортировать java.awt.*; импортировать java.awt.event.ActionEvent; импортировать java.awt.event.ActionListener; импортировать java.io.*; импортировать java.net.Socket; импортировать java.util.ArrayList; импортировать java.util.List; общественный класс FileClient { частная статическая окончательная строка SERVER_HOST = «localhost»; частный статический финал int SERVER_PORT = 12345; частный статический сокет; частный статический DataInputStream в; частный статический выход DataOutputStream; частный статический JList fileList; частная статическая DefaultListModel listModel; public static void main(String[] args) { пытаться { сокет = новый сокет (SERVER_HOST, SERVER_PORT); out = новый DataOutputStream(socket.getOutputStream()); in = новый DataInputStream(socket.getInputStream()); JFrame Frame = новый JFrame («Файловый клиент»); Frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Frame.setSize(400, 400); Панель JPanel = новая JPanel(); JButton listButton = новый JButton («Список файлов»); JButton downloadButton = новая JButton("Загрузить файл"); JButton uploadButton = новая JButton («Загрузить файл»); listModel = новая DefaultListModel(); fileList = новый JList(listModel); fileList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); JScrollPane ScrollPane = новый JScrollPane (fileList); listButton.addActionListener(новый ActionListener() { @Override общественный недействительный actionPerformed (ActionEvent e) { // Выполнение операции со списком в отдельном потоке SwingWorker listWorker = новый SwingWorker() { @Override protected Void doInBackground() выдает исключение { СписокФайлов(); вернуть ноль; } }; listWorker.execute(); } }); downloadButton.addActionListener(новый ActionListener() { @Override общественный недействительный actionPerformed (ActionEvent e) { // Выполняем операцию загрузки в отдельном потоке SwingWorker downloadWorker = новый SwingWorker() { @Override protected Void doInBackground() выдает исключение { Загрузка файла(); вернуть ноль; } }; скачатьWorker.execute(); } }); uploadButton.addActionListener(новый ActionListener() { @Override общественный недействительный actionPerformed (ActionEvent e) { // Выполняем операцию загрузки в отдельный поток SwingWorker uploadWorker = новый SwingWorker() { @Override protected Void doInBackground() выдает исключение { загрузить файл(); вернуть ноль; } }; uploadWorker.execute(); } }); Panel.add(listButton); Panel.add(downloadButton); панель.добавить(кнопка загрузки); Frame.add(панель, BorderLayout.NORTH); Frame.add(scrollPane, BorderLayout.CENTER); Frame.setVisible(истина); } catch (IOException e) { е.printStackTrace(); } } частный статический void listFiles() { пытаться { out.writeUTF("список"); int numFiles = in.readInt(); Файлы List = новый ArrayList(); для (int я = 0; я
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Многопоточная программа Java зависает
    Anonymous » » в форуме JAVA
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Когда я подключаюсь к удаленному серверу, scp зависает, команда экрана зависает, htop зависает [закрыто]
    Гость » » в форуме Linux
    0 Ответы
    159 Просмотры
    Последнее сообщение Гость
  • Реализация Socket IO Server с использованием Java Netty-Socket и хотите узнать, какой сервер он работает? В весеннем бот
    Anonymous » » в форуме JAVA
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous
  • Socket IO Java Android App и Socket IO JavaScript Server Достоверное подключение?
    Anonymous » » в форуме Android
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Socket IO Java Android App и Socket IO JavaScript Server Достоверное подключение?
    Anonymous » » в форуме JAVA
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»