12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- package connection.socket;
- import java.net.*;
- import java.io.*;
- public class Server implements Runnable{
- private ServerSocket serverSocket;
- private Socket clientSocket;
- private PrintWriter out;
- private BufferedReader in;
- private boolean stopped = false;
- private ui.view.Console console;
- public Server(int port, ui.view.Console console) throws IOException {
- //Bind Port
- serverSocket = new ServerSocket(port);
- //Wait for Connection
- Thread serverThread = new Thread(this);
- serverThread.start();
- this.console = console;
-
-
- }
-
- public void stopServer() throws IOException {
- stopped = false;
- stopConnection();
- serverSocket.close();
- }
- private void stopConnection() throws IOException {
- in.close();
- out.close();
- clientSocket.close();
- }
- @Override
- public void run() {
- while(!stopped) {
- try {
- //Wait for new Connection
- clientSocket = serverSocket.accept();
- console.println("A Connection from " + clientSocket.getInetAddress() + ":" + clientSocket.getPort());
- out = new PrintWriter(clientSocket.getOutputStream(), true);
- in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
- String inputLine;
- while ((inputLine = in.readLine()) != null) {
- console.println("Res: " + inputLine);
- if (".".equals(inputLine)) {
- out.println("bye");
- break;
- }
- out.println(inputLine);
- console.println("Send: " + inputLine);
- }
- stopConnection();
- }catch (IOException e) {
- e.printStackTrace();
- }
- }
-
- }
- }
|