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

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

        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();
                }

        }


    }
ch_eers
ch_eers 来个大佬顶一下啊,我顶不住了
9 个月之前 回复

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问