【问题标题】:What is the proper way to use a runnable to start a threaded client socket in Java?在Java中使用runnable启动线程客户端套接字的正确方法是什么?
【发布时间】:2021-02-06 23:21:23
【问题描述】:

我正在尝试在我的 TCP P2P 程序中启动一个新的客户端连接。我想在可运行文件上启动每个新连接。

我不确定是什么问题。该程序不会中断或任何事情。就像它只是忽略了启动线程的代码。

更新 以下代码连接但立即终止程序。

                Thread clientThread = new Thread(){
                    public void run(){
                       try {
                            Socket socketClient = new Socket(ip, yPort);
                        } catch(Exception ec){
                            System.out.println("error" + ec);
                        } 
                    }
                };
                
                clientThread.start();
                System.out.println("connected to " + portName);

【问题讨论】:

  • 你没有开始一个线程。您正在创建Runnable 接口的匿名实例,仅此而已。你需要做类似new Thread(thread).start();
  • 谢谢!我现在就开始。
  • 你指的是这个吗?
  • 不完全是,但这应该可以。是吗?
  • 确实可以连接。我在网上找到的例子没有';'在最后一个括号之后,但没有它它对我不起作用,所以我只是想确定一下。

标签: java multithreading sockets client


【解决方案1】:

问题是你只是在线程内部连接,然后什么都不做,所以jvm进程结束,所有套接字和分配的内存都将被释放!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-13
    • 2013-03-24
    • 1970-01-01
    相关资源
    最近更新 更多