Java технологія и основні риси та перспективи застосування
Категория реферата: Рефераты по информатике, программированию
Теги реферата: изложение на тему, контрольная работа 6
Добавил(а) на сайт: Shubkin.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 | Следующая страница реферата
synchronized void kill(ClientConnection c) { if (idcon.remove(c.getId()) == c) { delete(c.getId());
}
}
public void run() { try {
ServerSocket acceptSocket = new ServerSocket(port);
System.out.println("Server listening on port " + port); while (true) {
Socket s = acceptSocket.accept(); addConnection(s);
}
} catch (IOException e) {
System.out.println("accept loop IOException: " + e);
}
}
public static void main(String args[]) { new Thread(new Server()).start(); try {
Thread.currentThread().join();
} catch (InterruptedException e) {
}
}
}
Цей невеликий клас реалізує програму-сервер. Точка вхолу програми - функція main. В програмі створюється головний потік, в якому створюється об’єкт стандартного класу ServerSocket. Цей об’єкт приєднується до певного порта і в циклі здійснюється перевірка на підключення клієнта до порта. В разі такого підключення створюється об’єкт типу ClientConnection, в якому реалізований потік по опитуванню сокета, до якого підключений клієнт, та обробка протокольних команд. Клас Server є універсальним і нічого не знає про повідомлення, якими обмінюються гравці (клієнти). В ньому реалізоване лише приєднання/від’єднання клієнтів, надсилання строки певному клієнту та функція broadcast яка, як зрозуміло з назви, надсилає повідомлення усім зареєстрованим клієнтам.
Клас ClientConnection: import java.net.*; import java.io.*; import java.util.*;
class ClientConnection implements Runnable { private Socket sock; private DataInputStream in; private OutputStream out; private String host; private Server server; private static final int bufsize = 8192; private byte buffer[] = new byte[bufsize]; private static final String CRLF = "rn"; private String name = null; private String id; private boolean busy = false;
public ClientConnection(Server srv, Socket s, int i) { try { server = srv; sock = s; in = new DataInputStream(s.getInputStream()); out = s.getOutputStream(); host = s.getInetAddress().getHostName(); id = "" + i;
// tell the new one who it is... write("id " + id + CRLF);
new Thread(this).start();
} catch (IOException e) {
System.out.println("failed ClientConnection " + e);
}
}
public String toString() { return id + " " + host + " " + name;
}
public String getHost() { return host;
}
Рекомендуем скачать другие рефераты по теме: конспект урока 5 класс, оформление доклада.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 | Следующая страница реферата