ch_eers 2019-10-11 08:49 采纳率: 0%
浏览 303

运行在不同机器上的客户端可以共用一个线程向服务端发送不同的数据请求吗

没有开线程之前服务端开启之后总是卡死,必须用资源管理器才能结束任务,后来我打算用线程来负责跟客户端的通信,发现无论开几个客户端,线程名都一样,应该是共用线程了,难道是我两个客户端运行在一个机器上了??现在问题就在于两个客户端共用一个线程与服务端通信查询不同数据时,查询的数据是否是自己需要的数据?代码贴出来

        ok.addActionListener(new ActionListener() {//单击按钮开启服务端

            @Override
            public void actionPerformed(ActionEvent arg0) {
                tip.setText("    服务端已启动_");
                CreateThread ct=new CreateThread();
                Thread t1=new Thread(ct);//建立线程
                t1.start();                            //线程共用问题应该是在这


            }
        });

        Run():

        @Override
    public void run() {
        try {
            startSocket();//不开线程直接调用startSocket()会导致服务端卡死
        } catch (IOException e) {
            System.out.println("服务端口已开启");
        }

    }

    接收客户端请求的startSocket():

        private void startSocket() throws IOException {
        ServerSocket ss=new ServerSocket(6666);
        Socket server=null;
        while(true) {
            //System.out.println(server);
            server=ss.accept();

            if(server!=null) {
                System.out.println(server);
                InputStream is=server.getInputStream();
                byte[] message=new byte[1024];
                int len=is.read(message);
                String msg=new String(message,0,len);

                is.close();
                server.close();
                }

        }


    }
  • 写回答

1条回答

  • zqbnqsdsmd 2019-10-12 09:41
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料