Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package example1.client;
- import java.io.BufferedReader;
- import java.io.InputStreamReader;
- import java.io.PrintWriter;
- import java.net.Socket;
- public class Client {
- public static void main(String[] args) throws Exception {
- //tworze polaczenie na serwer
- Socket connection = new Socket("127.0.0.1", 3344);
- //dwa strumienie ktore: pozwalaja wysylac komunikaty na serwer i pozwalaja wczytac komunikaty z serwera
- PrintWriter out = new PrintWriter(connection.getOutputStream(), true);
- BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
- /*
- za pomoca scannera wczytaj od uzywtnoika komendy ktore zostana wyslane na serwer
- komendy powinny byc tak dlugo wczytywane az uzytkownik wpisze slowo END
- przykladowe komendy
- -> ADD#DJUPA#11222333
- -> GET#DUPA
- -> DEL#DUPA
- -> END
- -> ALA MA KOTA/ ADD#:)
- */
- //-----------PROTOKOL-------------
- out.println("ADD#MATI#600700800");
- String response = in.readLine();
- System.out.println("from server: "+response);
- out.println("ADD#Waldek#601700800");
- response = in.readLine();
- System.out.println("from server: "+response);
- out.println("ADD#Czarek#601700801");
- response = in.readLine();
- System.out.println("from server: "+response);
- out.println("DEL#Waldek");
- response = in.readLine();
- System.out.println("from server: "+response);
- out.println("GET#Waldek");
- response = in.readLine();
- System.out.println("from server: "+response);
- out.println("GET#MATI");
- response = in.readLine();
- System.out.println("from server: "+response);
- out.println("END");
- //-----------PROTOKOL-------------
- in.close();
- out.close();
- connection.close();
- }
- }
- package example1.server;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.io.PrintWriter;
- import java.net.ServerSocket;
- import java.net.Socket;
- import java.util.ArrayList;
- import java.util.List;
- public class Server {
- public static void main(String[] args) throws Exception {
- ServerSocket ss = new ServerSocket(3344);
- System.out.println("Serwer start");
- List<PhoneNumberRow> numberRows = new ArrayList<>();
- while (true) {
- Socket clientConnection = ss.accept();
- processClientConnection(numberRows, clientConnection);
- }
- }
- private static void processClientConnection(List<PhoneNumberRow> numberRows, Socket clientConnection) throws IOException {
- System.out.println("Polaczyl sie klient z: " + clientConnection.getInetAddress().getHostAddress());
- PrintWriter out = new PrintWriter(clientConnection.getOutputStream(), true);
- BufferedReader in = new BufferedReader(new InputStreamReader(clientConnection.getInputStream()));
- //-------------PROTOKOL---------------
- boolean clientConnected = true;
- while (clientConnected) {
- String command = in.readLine();
- String[] commandArgs = command.split("#");
- //["add","mati","nrtel"]
- if ("ADD".equals(commandArgs[0])) {
- if (numberRows.stream().anyMatch(row -> row.getName().equals(commandArgs[1]))) {
- out.println("WPIS DLA OSOBY: " + commandArgs[1] + " juz istnieje");
- } else {
- numberRows.add(new PhoneNumberRow(commandArgs[1], commandArgs[2]));
- out.println("OK DODANO");
- }
- } else if ("GET".equals(commandArgs[0])) {
- if (numberRows.stream().anyMatch(row -> row.getName().equals(commandArgs[1]))) {
- out.println("Number do: " + commandArgs[1] + " to: " + numberRows.stream().filter(row -> row.getName().equals(commandArgs[1])).findFirst().get().getNumber());
- }else{
- out.println("BRAK NUMBERU DLA: "+commandArgs[1]);
- }
- } else if ("DEL".equals(commandArgs[0])) {
- if (numberRows.stream().anyMatch(row -> row.getName().equals(commandArgs[1]))) {
- numberRows.removeIf(row -> row.getName().equals(commandArgs[1]));
- out.println("USUNIETO");
- }else{
- out.println("BRAK NUMBERU DLA: "+commandArgs[1]);
- }
- } else if ("END".equals(commandArgs[0])) {
- clientConnected = false;
- } else {
- out.println("nieznana komenda!");
- }
- }
- System.out.println(numberRows);
- out.close();
- in.close();
- clientConnection.close();
- //------------------------------------
- }
- }
- package example1.server;
- public class PhoneNumberRow {
- private String name;
- private String number;
- public PhoneNumberRow(String name, String number) {
- this.name = name;
- this.number = number;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getNumber() {
- return number;
- }
- public void setNumber(String number) {
- this.number = number;
- }
- @Override
- public String toString() {
- return "PhoneNumberRow{" +
- "name='" + name + '\'' +
- ", number='" + number + '\'' +
- '}';
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement