Projet_COO_POO/POO/src/communication/tcp/TCPServer.java

52 lines
1.2 KiB
Java

package communication.tcp;
import java.io.IOException;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException;
import observers.ObserverInputMessage;
public class TCPServer extends Thread {
private ServerSocket sockListenTCP;
private ObserverInputMessage obsInput;
/**
* Create a TCP Server on the specified port. It will listen continuously for
* connections in order to create new sessions between users.
*
* @param port The port on which the server will listen
* @throws UnknownHostException
* @throws IOException
*/
public TCPServer(int port) throws UnknownHostException, IOException {
this.sockListenTCP = new ServerSocket(port, 50, InetAddress.getLocalHost());
}
@Override
public void run() {
Socket sockAccept;
while (true) {
try {
sockAccept = this.sockListenTCP.accept();
// Notify the observer of the new connexion
this.obsInput.updateInput(this, sockAccept);
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* Set the observer to notify when a new connection is made.
*
* @param o The observer
*/
public void addObserver(ObserverInputMessage o) {
this.obsInput = o;
}
}