小编Way*_*son的帖子

javafx,套接字编程和线程

我是Java和JavaFX的新手,所以请原谅我的新手问题.我过去几天搜索了我想要做的事情的例子,但一直找不到任何答案.这是我想要做的:我正在尝试使用将连接到服务器并发送/接收数据的场景构建器创建一个简单的javafx GUI客户端套接字应用程序.很简单,但是当我尝试在Java FX中实现它时,我的GUI冻结了.我研究并发现原因是套接字通信一直在占用,而javafx GUI无法更新.我的研究指出我使用任务.所以,我创建了一个创建任务的简单应用程序,连接到互联网套接字(端口80),发送命令"GET/HTTP/1.1\r \n\r \n",它将请求页面然后打印出来收到的每一行.问题是我想一遍又一遍地做这件事(每3秒钟).任务成功运行一次,但随后停止.在下面的代码中,永远不会到达使线程进入休眠状态的行,但是打印任何错误的行也不会发送到system.out.

这是控制器代码

package clientSocketExample;

import java.io.*;
import java.net.*;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.*;
import javafx.concurrent.Task;

/**
 * Controller class of the HelloWorld sample.
 */
public class ClientSocketExampleController implements Initializable
{

    @FXML
    Button button;

    private boolean keepRunning = true;

    /**
     * Initializes the controller class.
     */
    @Override
    public void initialize(URL url, ResourceBundle rsrcs)
    {
            if (button != null)
        {
            button.setOnAction(new EventHandler<ActionEvent>()
            {
                @Override
                public void handle(ActionEvent event)
                {
                    keepRunning …
Run Code Online (Sandbox Code Playgroud)

sockets multithreading javafx

5
推荐指数
1
解决办法
5515
查看次数

标签 统计

javafx ×1

multithreading ×1

sockets ×1