Привет, я пытаюсь сделать чат, который использует сокеты, и когда я пытаюсь отправить данные клиенту, он отправляет его один раз, но затем он ничего не получает, я заметил, что его печатающий редактор испортил, я пробовал другие способы, но он делает он работает только один раз, даже если я попытался скопировать все из учебника онлайн, он делает ТО ЖЕ! не работает, как это должно быть soo, в чем проблема? печатник должен иметь возможность отправлять данные более одного раза. Я разрабатываю это в JavaFX.Java Socket PrintWriter работает только один раз?
Это функция PrintWriter кода, которые выполняют на кнопку печати:
public void testfunction(ActionEvent event){
//new Thread(new ListenerThread()).start();
//play();
//ObservableList<String> list = FXCollections.observableArrayList("Hello, hello?");
//TabPaneTabSlavesSlavesList.setItems(list);
/*System.out.println("Pc index: " + connectedClients.get(0).getLocalAddress().getLocalHost().getHostAddress());
System.out.println("Pc index: " + connectedClients.get(0).getLocalAddress().getLocalHost().getCanonicalHostName());
System.out.println("Pc index: " + connectedClients.get(0).getLocalAddress().getLocalHost().getAddress());
System.out.println("Pc index: " + connectedClients.get(0).getLocalAddress().getLocalHost().getHostName());*/
// Neina gauti ip ar kanors tokio su sitom funkcijomis FIX: Paimti informatcija ir persiusti su stream.
try {
Random rand = new Random();
int myrand = rand.nextInt(50) +1;
PrintWriter pw = new PrintWriter(connectedClients.get(0).getOutputStream());
pw.println("PINGiamconnected: " + Integer.toString(myrand));
pw.flush();
} catch (Exception e) {
e.printStackTrace();
}
}
Это слушатель код, который работает на волоске:
@Override
public void run() {
// TODO Auto-generated method stub
try {
Socket clientSocket = MainController.serverSocket.accept();
MainController.connectedClients.add(clientSocket);
MainController.NewClientConnected = true;
} catch (Exception e) {
e.printStackTrace();
}
}
И здесь читатель на клиенте который также работает над резьбой:
@Override
public void run() {
try {
BufferedReader in = new BufferedReader(new InputStreamReader(MainController.socket.getInputStream()));
//DataInputStream in = new DataInputStream(MainController.socket.getInputStream());
String line = in.readLine();
System.out.println(line);
} catch (Exception e) {
e.printStackTrace();
}
}
Я думаю, это все, что вам нужно, чернила, если вам нужно что-то еще сказать мне. Благодарю.
Так много вещей неправильно с этим, что вы явно не следовали надлежащей сеть учебника. Я рекомендую вам найти его сейчас (я рекомендую учебники Oracle), чтобы избежать дальнейших разочарований, когда все будет не так, как вы ожидаете. – Kayaman
Знаете ли вы видеоурок? Мне не нравится читать. Я знаю программирование, я могу создать что-нибудь даже в играх, но для меня это не ново. – GrimReaper
Если вам не нравится читать, программирование, вероятно, не лучший выбор для вас. – Kayaman