123
123

Reputation:

tcp session in java

i want to connect morethan one client at a time to the server and also communicate server to all the clients. how server recognize each client. and how to send data to a particular client?

consider , there are 3 clients A,B,C. all the clients are connected to the server. the server wants to send message to B. how its done ?

Upvotes: 1

Views: 1757

Answers (1)

Vanger
Vanger

Reputation: 326

If i understand you right - all you need is not bind socket for one connection. Your client code will looks like that:

Client class:

public class TCPClient {

 public TCPClient(String host, int port) {

        try {
            clientSocket = new Socket(host, port);
        } catch (IOException e) {
            System.out.println(" Could not connect on port: " + port + " to " + host);
        }
}

Server(host) class:

   public class TCPListener {

    public TCPListener(int portNumber) {
            try {
                serverSocket = new ServerSocket(portNumber);
            } catch (IOException e) {
                System.out.println("Could not listen on port: " + portNumber);
            }
            System.out.println("TCPListener created!");
                    System.out.println("Connection accepted");
            try {
                while (true) {
                    Socket clientConnection = serverSocket.accept();

    //every time client's class constructor called - line above will be executed and new connection saved into Socket class.
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
    }

That is simplest example. More can be found here: http://www.oracle.com/technetwork/java/socket-140484.html

Upvotes: 1

Related Questions