Java Socket PrintWriter只能工作一次?
您好,我正在尝试使用套接字进行聊天,当我尝试向客户端发送数据时,它会发送一次数据,但没有接收到任何内容,然后我注意到它的printwriter出现了问题,我尝试了其他方法,但它是一样的,它只工作一次,即使我尝试在线复制教程中的所有内容,它也会这样做!它不应该这样工作,所以这里有什么问题?printwriter应该能够多次发送数据。我正在用JavaFX开发这个 这是按下按钮时执行的printwriter功能代码:Java Socket PrintWriter只能工作一次?,java,sockets,javafx,Java,Sockets,Javafx,您好,我正在尝试使用套接字进行聊天,当我尝试向客户端发送数据时,它会发送一次数据,但没有接收到任何内容,然后我注意到它的printwriter出现了问题,我尝试了其他方法,但它是一样的,它只工作一次,即使我尝试在线复制教程中的所有内容,它也会这样做!它不应该这样工作,所以这里有什么问题?printwriter应该能够多次发送数据。我正在用JavaFX开发这个 这是按下按钮时执行的printwriter功能代码: public void testfunction(ActionEvent event
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();
}
}
我想这就是你们需要的我想如果你们还需要什么,告诉我。谢谢。我修复了它问题是线程只执行了一次,然后停止了它一直在工作–GrimReaper我修复了它问题是线程只执行了一次,然后停止了它一直在工作–GrimReaper有很多问题,你显然没有遵循正确的网络教程。我建议你现在就去找一个(我推荐Oracle教程),以避免在事情不能按你期望的方式运行时进一步受挫。你知道视频教程吗?我不喜欢读书。我知道编程,我可以创造任何东西,甚至游戏,但网络对我来说是新事物。如果你不喜欢阅读,编程对你来说可能不是最好的选择。我已经创建了很多大型项目,所以编程不是问题,我只是不喜欢我需要阅读的教程。我修复了它。问题是线程只执行了一次,然后就停止了,它一直在工作。这有很多问题,你显然没有遵循正确的网络教程。我建议你现在就去找一个(我推荐Oracle教程),以避免在事情不能按你期望的方式运行时进一步受挫。你知道视频教程吗?我不喜欢读书。我知道编程,我可以创造任何东西,甚至游戏,但网络对我来说是新事物。如果你不喜欢阅读,编程可能不是你的最佳选择。我已经创建了很多大型项目,所以编程不是问题,我只是不喜欢我需要阅读的教程。我修复了它。问题是线程只执行了一次,然后就停止了,它一直在工作