Сервер-клієнт
Найпростіший Сервер
import java.io.IOException;
import java.net.ServerSocket;
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(8000); // 0-1023 системні порти
System.out.println("Server started!");
server.accept(); // Працює довго, поки клієнт не підключиться
System.out.println("Client connected");
}
}
Може з'явитися повідомлення від Файерволу - дозволяємо
Для перевірки вводимо в браузері: http://localhost:8000
Сервер
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) {
try(ServerSocket server = new ServerSocket(8000);)
{
System.out.println("Server started!");
while(true){
try(
Socket socket = server.accept();
BufferedWriter writer =
new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream()));
BufferedReader reader =
new BufferedReader(
new InputStreamReader(
socket.getInputStream()));
)
{
String request = reader.readLine();
System.out.println("Request: " + request);
String response = "HELLO FROM SERVER: " + request.length();
System.out.println("Response: " + response);
writer.write(response);
writer.newLine();
writer.flush();
}
catch (IOException e) {
throw new RuntimeException(e);
}
}
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
Клієнт
IDEA, Ctrl + Alt + Shift + S - можна в новому модулі
import java.io.*;
import java.net.Socket;
public class Client {
public static void main(String[] args) {
try(
Socket socket = new Socket("localhost",8000);
BufferedWriter writer =
new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream()));
BufferedReader reader =
new BufferedReader(
new InputStreamReader(socket.getInputStream()));
)
{
System.out.println("Connected to server");
String request = "Wien";
System.out.println("Request: " + request);
writer.write(request);
writer.newLine();
writer.flush();
String response = reader.readLine();
System.out.println("Response: " + response);
}
catch (IOException e){
e.printStackTrace();
}
}
}