Skip to content

Commit 6d7bdfa

Browse files
Client and Server are ready, only refactoring remains
1 parent fb176f0 commit 6d7bdfa

File tree

7 files changed

+90
-197
lines changed

7 files changed

+90
-197
lines changed

Programming on Java Lab №6/src/Client/Client.java

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@ public class Client {
2121
ByteBuffer byteBuffer = ByteBuffer.allocate(10240);
2222
byte[] bytes;
2323

24+
public Client(int PORT) {
25+
this.PORT = PORT;
26+
}
27+
2428
public void sendRequest(Request request) {
2529
try {
2630
ByteArrayOutputStream baos;
@@ -40,10 +44,16 @@ public void sendRequest(Request request) {
4044
for (int i = 0; i < read; i++) {
4145
bytes[i] = byteBuffer.get(i);
4246
}
43-
System.out.println(bytes.toString());
47+
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
48+
ObjectInputStream ois = new ObjectInputStream(bais);
49+
System.out.println((String) ois.readObject());
4450
}
51+
} catch (ClassNotFoundException e) {
52+
e.printStackTrace();
4553
} finally {
46-
oos.close();
54+
if (oos != null) {
55+
oos.close();
56+
}
4757
}
4858
}catch (ConnectionException e) {
4959
System.out.println("Ошибка подключения к серверу");
@@ -53,7 +63,7 @@ public void sendRequest(Request request) {
5363
}
5464
}
5565

56-
public SocketChannel connect(InetSocketAddress inetSocketAddress) throws ConnectionException {
66+
private SocketChannel connect(InetSocketAddress inetSocketAddress) throws ConnectionException {
5767
int countReconnect = 0;
5868
SocketChannel socketChannel;
5969
try {

Programming on Java Lab №6/src/Client/CommandManager.java

Lines changed: 0 additions & 106 deletions
This file was deleted.

Programming on Java Lab №6/src/Client/RequestSender.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@
2020
* @author Behruz Mansurov
2121
*/
2222
public class RequestSender {
23+
public static void main(String[] args) {
24+
RequestSender requestSender = new RequestSender(5555);
25+
requestSender.parser();
26+
}
2327
private boolean exit = false;
2428
private final Client sender;
2529
public RequestSender(int PORT) {

Programming on Java Lab №6/src/Client/ServerConnect.java

Lines changed: 0 additions & 30 deletions
This file was deleted.

Programming on Java Lab №6/src/Common/Request.java

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,39 @@ public class Request implements Serializable {
1818
private String request;
1919
private Worker worker;
2020
private File file;
21-
private int id;
21+
private long id;
2222
private ZonedDateTime startdate;
2323
private Organization organization;
2424

25+
public Request(String request) {
26+
this.request = request;
27+
}
2528

2629
public Request(String request, Worker worker) {
2730
this.request = request;
2831
this.worker = worker;
2932
}
3033

34+
public Request(String request, Organization organization) {
35+
this.request = request;
36+
this.organization = organization;
37+
}
38+
39+
public Request(String request, ZonedDateTime startdate) {
40+
this.request = request;
41+
this.startdate = startdate;
42+
}
43+
44+
public Request(String request, long id) {
45+
this.request = request;
46+
this.id = id;
47+
}
48+
49+
public Request(String request, File file) {
50+
this.request = request;
51+
this.file = file;
52+
}
53+
3154
public String getRequest() {
3255
return request;
3356
}
@@ -40,7 +63,7 @@ public File getFile() {
4063
return file;
4164
}
4265

43-
public int getId() {
66+
public long getId() {
4467
return id;
4568
}
4669

@@ -52,23 +75,4 @@ public Organization getOrganization() {
5275
return organization;
5376
}
5477

55-
public Request(String request, Organization organization) {
56-
this.request = request;
57-
this.organization = organization;
58-
}
59-
60-
public Request(String request, ZonedDateTime startdate) {
61-
this.request = request;
62-
this.startdate = startdate;
63-
}
64-
65-
public Request(String request, int id) {
66-
this.request = request;
67-
this.id = id;
68-
}
69-
70-
public Request(String request, File file) {
71-
this.request = request;
72-
this.file = file;
73-
}
7478
}

Programming on Java Lab №6/src/Server/RequestHandler.java

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,10 @@
44
import Common.Data.Worker;
55
import Common.Request;
66

7-
import java.io.File;
8-
import java.io.IOException;
9-
import java.io.ObjectInputStream;
10-
import java.io.ObjectOutputStream;
7+
import java.io.*;
118
import java.net.Socket;
9+
import java.nio.ByteBuffer;
10+
import java.nio.channels.SocketChannel;
1211
import java.time.ZonedDateTime;
1312

1413
/**
@@ -17,24 +16,25 @@
1716
* @author Behruz Mansurov
1817
*/
1918
public class RequestHandler {
20-
private final Socket socket;
19+
private final SocketChannel socket;
2120
private final WorkerManager workerManager;
2221
private Request request;
2322
String command;
2423
Worker worker;
2524
File file;
26-
int id;
25+
long id;
2726
ZonedDateTime startdate;
2827
Organization organization;
2928

30-
public RequestHandler(Socket socket, WorkerManager workerManager) {
29+
public RequestHandler(SocketChannel socket, WorkerManager workerManager) {
3130
this.socket = socket;
3231
this.workerManager = workerManager;
3332
}
3433

3534
public void handler() {
36-
try(ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
37-
ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream())) {
35+
try(ObjectInputStream ois = new ObjectInputStream(socket.socket().getInputStream());
36+
ByteArrayOutputStream bais = new ByteArrayOutputStream();
37+
ObjectOutputStream oos = new ObjectOutputStream(bais)) {
3838
try {
3939
request = (Request) ois.readObject();
4040
} catch (ClassNotFoundException e) {
@@ -48,48 +48,52 @@ public void handler() {
4848
organization = request.getOrganization();
4949
switch (command) {
5050
case "help":
51-
oos.writeUTF(workerManager.help());
51+
oos.writeObject(workerManager.help());
5252
break;
5353
case "info":
54-
oos.writeUTF(workerManager.info());
54+
oos.writeObject(workerManager.info());
5555
break;
5656
case "show":
57-
oos.writeUTF(workerManager.show());
57+
oos.writeObject(workerManager.show());
5858
break;
5959
case "add":
60-
oos.writeUTF(workerManager.add(worker));
60+
oos.writeObject(workerManager.add(worker));
6161
break;
6262
case "update_by_id":
63-
oos.writeUTF(workerManager.updateById(id, id));
63+
oos.writeObject(workerManager.updateById(id, id));
6464
break;
6565
case "remove_by_id":
66-
oos.writeUTF(workerManager.removeById(id));
66+
oos.writeObject(workerManager.removeById(id));
6767
break;
6868
case "clear":
69-
oos.writeUTF(workerManager.clear());
69+
oos.writeObject(workerManager.clear());
7070
break;
7171
case "save_server":
7272
workerManager.save();
7373
break;
7474
case "remove_first":
75-
oos.writeUTF(workerManager.removeFirst());
75+
oos.writeObject(workerManager.removeFirst());
7676
break;
7777
case "remove_last":
78-
oos.writeUTF(workerManager.removeLast());
78+
oos.writeObject(workerManager.removeLast());
7979
break;
8080
case "shuffle":
81-
oos.writeUTF(workerManager.shuffle());
81+
oos.writeObject(workerManager.shuffle());
8282
break;
8383
case "remove_any_by_start_date":
84-
oos.writeUTF(workerManager.removeAnyByStartDate(startdate));
84+
oos.writeObject(workerManager.removeAnyByStartDate(startdate));
8585
break;
8686
case "max_by_id":
87-
oos.writeUTF(workerManager.maxById());
87+
oos.writeObject(workerManager.maxById());
8888
break;
8989
case "count_less_than_organization":
90-
oos.writeUTF(workerManager.countLessThanOrganization(organization));
90+
oos.writeObject(workerManager.countLessThanOrganization(organization));
9191
break;
9292
}
93+
ByteBuffer byteBuffer = ByteBuffer.allocate(bais.size());
94+
byteBuffer.put(bais.toByteArray());
95+
byteBuffer.flip();
96+
socket.write(byteBuffer);
9397
} catch (IOException e) {
9498
e.printStackTrace();
9599
} finally {

0 commit comments

Comments
 (0)