Correct method to start threads and socket programming

Joined
Nov 30, 2015
Messages
2
Reaction score
0
Hi. My name is Clint this is my first time here, anyway I have a chat app can you simply my code for me because I'm not sure what will happen if a million clients connect.
<server side> My main class listen for incoming socket connection requests from socket clients, then I assign each socket object to a thread and construct the thread with the socket object because later on I want the clients to send and receive data to each other.

the main listens and accept connection...
Code:
try{
            serverSocket=new ServerSocket(serverPort);
            exe = Executors.newFixedThreadPool(NTHREADS);
            while(true){
                try{
                    clientSocket=serverSocket.accept();
                    int si;
                    for(si=0;si<NTHREADS;si++){
                        if(client[si]==null){
                            client[si]=new ClientThread(clientSocket,client,gui,si,server,methods);
                            exe.execute(client[si]);
                            break;
                        }
                    }
                    if(si==NTHREADS){
                        PrintStream os = new PrintStream(clientSocket.getOutputStream());
                        os.println("99");
                        os.close();
                        clientSocket.close();
                    }
                } catch(IOException ioe){
                    gui.textArea1.append("\nError accepting connection:"+ioe.getMessage()+"\n");
                }
            }
        }catch(IOException e){
            gui.textArea1.append("\nError starting Server on port "+serverPort+"\n");
            gui.textArea1.append(e.getMessage()+"\n");
        }

What I would really want this code to do is accept up to an infinite number of socket clients ==> assign each to a thread and I want to be able to call any socket client's output or inpustream to communicate. I pray my question is clear enough to answer. Thank you in advance. Ps. How would you do that, what you think I'm trying to do...
 
Joined
Nov 30, 2015
Messages
2
Reaction score
0
If my query is unclear allow me to simplify...I want to know if my executor code looks right and how can I keep track, like a list array, of all threads. It's a client socket connecting and I want to be able to call the output / input stream of thread-X from thread-Y and write / read over it, respectively. Later on I am going to show you the client thread and ask you more, for now just that. Please tell me if I'm unclear or are in the wrong forum.
I
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,733
Messages
2,569,439
Members
44,829
Latest member
PIXThurman

Latest Threads

Top