解锁UDP线程

时间:2017-02-24 10:58:08

标签: java multithreading sockets

我有这个可运行的接收器,我想停下来。但由于它是一个不断接收的套接字,它的线程处于阻塞模式。

我发现我必须使用socket.close()

从线程本身外部停止套接字

所以我定义了一个公共静态套接字。 (这本身就很糟糕,我猜?)然后我开始新线程并尝试使用此代码停止它们(没有改变任何东西)

public static DatagramSocket socket;

单独启动每个线程都可以正常工作。但由于套接字现在是全局的,我无法单独阻止它们。如何使socket var全局但个性化?或者我需要做些什么呢?

 public void startSls () throws SocketException{
        try{
            socket = new DatagramSocket(parseInt(port));
        }catch (SocketException e) {
            Log.e("CCSstream", e.toString());
        }
        slst = new Thread(new slss(port));
        slst.start();
    }

    public void stopSls(){
        socket.close();
        stopSLS = true;
        slst.interrupt();
        runThreads1 = false;
    }

如果有什么不清楚我可以解释。

由于

0 个答案:

没有答案