Compare commits
2 Commits
db77793f23
...
77df0f8298
| Author | SHA1 | Date | |
|---|---|---|---|
|
77df0f8298
|
|||
|
22a11a0fa6
|
17
src/Ex4/App.java
Normal file
17
src/Ex4/App.java
Normal file
@@ -0,0 +1,17 @@
|
||||
package Ex4;
|
||||
|
||||
import java.net.InetSocketAddress;
|
||||
|
||||
public class App {
|
||||
public static void main(String[] args) throws Exception {
|
||||
Server server = new Server(6666);
|
||||
Client client = new Client(new InetSocketAddress("localhost", 6666));
|
||||
client.sendMessage("DATE");
|
||||
client.sendMessage("HOUR");
|
||||
client.sendMessage("FULL");
|
||||
client.sendMessage("CLOSE");
|
||||
|
||||
// stopping server
|
||||
server.close();
|
||||
}
|
||||
}
|
||||
45
src/Ex4/Client.java
Normal file
45
src/Ex4/Client.java
Normal file
@@ -0,0 +1,45 @@
|
||||
package Ex4;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.PrintWriter;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.net.Socket;
|
||||
|
||||
public class Client {
|
||||
|
||||
private final Socket socket;
|
||||
|
||||
/**
|
||||
* Create a new client
|
||||
*
|
||||
* @param address server adress (needed
|
||||
* @throws IOException
|
||||
*/
|
||||
public Client(InetSocketAddress address) throws IOException {
|
||||
this.socket = new Socket(address.getAddress(), address.getPort());
|
||||
|
||||
}
|
||||
|
||||
public void sendMessage(String message) {
|
||||
PrintWriter writer;
|
||||
try {
|
||||
writer = new PrintWriter(this.socket.getOutputStream(), true);
|
||||
writer.println(message);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
readMessage();
|
||||
}
|
||||
|
||||
private void readMessage() {
|
||||
try {
|
||||
BufferedReader reader = new BufferedReader(new InputStreamReader(this.socket.getInputStream()));
|
||||
System.out.println("[Client] " + reader.readLine());
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
102
src/Ex4/Server.java
Normal file
102
src/Ex4/Server.java
Normal file
@@ -0,0 +1,102 @@
|
||||
package Ex4;
|
||||
|
||||
import java.io.BufferedOutputStream;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.PrintWriter;
|
||||
import java.net.DatagramPacket;
|
||||
import java.net.DatagramSocket;
|
||||
import java.net.InetAddress;
|
||||
import java.net.ServerSocket;
|
||||
import java.net.Socket;
|
||||
import java.net.SocketException;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.GregorianCalendar;
|
||||
|
||||
public class Server {
|
||||
|
||||
private final ServerSocket serverSocket;
|
||||
|
||||
public Server(int port) throws IOException {
|
||||
this.serverSocket = new ServerSocket(port);
|
||||
new Thread(this::listen).start();
|
||||
System.out.println("Server running on port " + getPort());
|
||||
}
|
||||
|
||||
public void close() {
|
||||
try {
|
||||
this.serverSocket.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public int getPort() {
|
||||
return this.serverSocket.getLocalPort();
|
||||
}
|
||||
|
||||
private void processConnexion(Socket socket) throws IOException {
|
||||
new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
readMessages(socket);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
|
||||
private void listen() {
|
||||
try {
|
||||
while (true) {
|
||||
Socket connexion = this.serverSocket.accept();
|
||||
processConnexion(connexion);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private void readMessages(Socket socket) throws IOException {
|
||||
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
|
||||
PrintWriter writer = new PrintWriter(socket.getOutputStream(), true);
|
||||
boolean done = false;
|
||||
while (!done) {
|
||||
String message = reader.readLine();
|
||||
Date date = Date.from(Instant.now());
|
||||
Calendar now = GregorianCalendar.getInstance();
|
||||
now.setTime(date);
|
||||
System.out.println("[Server] Received " + message);
|
||||
switch (message) {
|
||||
case "DATE":
|
||||
writer.println(LocalDate.now());
|
||||
break;
|
||||
|
||||
case "HOUR":
|
||||
writer.println(now.get(Calendar.HOUR_OF_DAY) + ":" + now.get(Calendar.MINUTE));
|
||||
break;
|
||||
|
||||
case "FULL":
|
||||
writer.println(Instant.now().toString());
|
||||
break;
|
||||
|
||||
case "CLOSE":
|
||||
System.out.println("[Server] Closing socket...");
|
||||
socket.close();
|
||||
done = true;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
22
src/Ex5/App.java
Normal file
22
src/Ex5/App.java
Normal file
@@ -0,0 +1,22 @@
|
||||
package Ex5;
|
||||
|
||||
import java.net.InetSocketAddress;
|
||||
import java.util.Scanner;
|
||||
|
||||
public class App {
|
||||
public static void main(String[] args) throws Exception {
|
||||
Server server = new Server(6666);
|
||||
Client client = new Client(new InetSocketAddress("localhost", 6666));
|
||||
|
||||
Scanner scanner = new Scanner(System.in);
|
||||
System.out.println("Entrez des messages :");
|
||||
while (true) {
|
||||
String line = scanner.nextLine();
|
||||
System.out.println("[Client -> Server] " + line);
|
||||
client.sendMessage(line);
|
||||
|
||||
String response = client.readMessage();
|
||||
System.out.println("[Client <- Server] " + response);
|
||||
}
|
||||
}
|
||||
}
|
||||
45
src/Ex5/Client.java
Normal file
45
src/Ex5/Client.java
Normal file
@@ -0,0 +1,45 @@
|
||||
package Ex5;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.PrintWriter;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.net.Socket;
|
||||
|
||||
public class Client {
|
||||
|
||||
private final Socket socket;
|
||||
|
||||
/**
|
||||
* Create a new client
|
||||
*
|
||||
* @param address server adress (needed
|
||||
* @throws IOException
|
||||
*/
|
||||
public Client(InetSocketAddress address) throws IOException {
|
||||
this.socket = new Socket(address.getAddress(), address.getPort());
|
||||
|
||||
}
|
||||
|
||||
public void sendMessage(String message) {
|
||||
PrintWriter writer;
|
||||
try {
|
||||
writer = new PrintWriter(this.socket.getOutputStream(), true);
|
||||
writer.println(message);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public String readMessage() {
|
||||
try {
|
||||
BufferedReader reader = new BufferedReader(new InputStreamReader(this.socket.getInputStream()));
|
||||
return reader.readLine();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
65
src/Ex5/Server.java
Normal file
65
src/Ex5/Server.java
Normal file
@@ -0,0 +1,65 @@
|
||||
package Ex5;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.PrintWriter;
|
||||
import java.net.ServerSocket;
|
||||
import java.net.Socket;
|
||||
|
||||
public class Server {
|
||||
|
||||
private final ServerSocket serverSocket;
|
||||
|
||||
public Server(int port) throws IOException {
|
||||
this.serverSocket = new ServerSocket(port);
|
||||
new Thread(this::listen).start();
|
||||
System.out.println("Server running on port " + getPort());
|
||||
}
|
||||
|
||||
public void close() {
|
||||
try {
|
||||
this.serverSocket.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public int getPort() {
|
||||
return this.serverSocket.getLocalPort();
|
||||
}
|
||||
|
||||
private void processConnexion(Socket socket) throws IOException {
|
||||
new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
readMessages(socket);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
|
||||
private void listen() {
|
||||
try {
|
||||
while (true) {
|
||||
Socket connexion = this.serverSocket.accept();
|
||||
processConnexion(connexion);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private void readMessages(Socket socket) throws IOException {
|
||||
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
|
||||
PrintWriter writer = new PrintWriter(socket.getOutputStream(), true);
|
||||
while (true) {
|
||||
String message = reader.readLine();
|
||||
writer.println(message.toUpperCase());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user