@ -9,41 +9,54 @@ import java.io.PrintWriter;
@@ -9,41 +9,54 @@ import java.io.PrintWriter;
import java.net.ServerSocket ;
import java.net.Socket ;
import java.nio.charset.StandardCharsets ;
/ * *
*
* /
public class ExchangeServer extends Thread {
private int port = 8081 ;
private int num = 0 ;
public static boolean isActive ;
public ServerSocket serverSocket ;
public Socket socket ;
public class ExchangeServer {
private static int port = 8081 ;
private static String link = "localhost" ;
private static int num = 0 ;
ServerSocket serverSocket ;
Socket socket ;
//подготовка компонентов
public void init ( ) {
ExchangeServer ( ) {
isActive = true ;
}
//остановка серера
public void stop ( ) {
try {
serverSocket . close ( ) ;
//socket.close();
} catch ( Exception e ) {
System . out . println ( "Остановить сервер не удалось. Ошибка: " + e ) ;
}
ExchangeServer ( int port ) {
isActive = true ;
setPort ( port ) ;
}
/ * *
* @return the port
* /
public int getPort ( ) {
return port ;
}
/ * *
* @param port the port to set
* /
public void setPort ( int port ) {
this . port = port ;
}
//осановка сервера
public void finish ( ) {
isActive = false ;
}
//запуск сервера
public void start ( ) {
@Override
public void run ( ) {
System . out . printf ( "%s started... \n" , Thread . currentThread ( ) . getName ( ) ) ;
try ( ServerSocket serverSocket = new ServerSocket ( port ) ) {
System . out . println ( "Server started at port: " + port + " ..." ) ;
while ( tru e) {
while ( isActiv e) {
// ожидаем подключения
Socket socket = serverSocket . accept ( ) ;
System . out . println ( "Client connected ..." ) ;
num + + ;
// для подключившегося клиента открываем потоки
// для подключившегося клиента открываем потоки
// чтения и записи
try ( BufferedReader input = new BufferedReader ( new InputStreamReader ( socket . getInputStream ( ) , StandardCharsets . UTF_8 ) ) ;
PrintWriter output = new PrintWriter ( socket . getOutputStream ( ) ) ) {
@ -87,17 +100,17 @@ public class ExchangeServer{
@@ -87,17 +100,17 @@ public class ExchangeServer{
}
output . flush ( ) ;
}
catch ( IOException e ) {
e . printStackTrace ( ) ;
}
// по окончанию выполнения блока try-with-resources потоки,
// по окончанию выполнения блока try-with-resources потоки,
// а вместе с ними и соединение будут закрыты
System . out . println ( "Client disconnected!" ) ;
System . out . println ( "num: " + num ) ;
}
}
System . out . printf ( "%s finished... \n" , Thread . currentThread ( ) . getName ( ) ) ;
} catch ( IOException ex ) {
ex . printStackTrace ( ) ;
}
@ -106,5 +119,5 @@ public class ExchangeServer{
@@ -106,5 +119,5 @@ public class ExchangeServer{
public static void main ( String [ ] args ) {
new ExchangeServer ( ) . start ( ) ;
}
}