SortClientServer
This commit is contained in:
parent
7feec0d3cd
commit
6114fcb1ab
54
src/praktikum04/SorterClient.java
Normal file
54
src/praktikum04/SorterClient.java
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
package praktikum04;
|
||||||
|
|
||||||
|
|
||||||
|
import javax.sound.sampled.Port;
|
||||||
|
import java.io.*;
|
||||||
|
import java.net.*;
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
public class SorterClient {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
SorterClient client = new SorterClient();
|
||||||
|
client.run();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void run() {
|
||||||
|
Scanner scanner = new Scanner(System.in);
|
||||||
|
while (scanner.hasNextLine()) {
|
||||||
|
String line = scanner.nextLine();
|
||||||
|
if (line.isEmpty())
|
||||||
|
break;
|
||||||
|
line = sort(line);
|
||||||
|
System.out.println(line);
|
||||||
|
}
|
||||||
|
scanner.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
private String sort(String line) {
|
||||||
|
InetSocketAddress address =
|
||||||
|
new InetSocketAddress("localhost", 12345);
|
||||||
|
try (Socket socket = new Socket()) {
|
||||||
|
socket.connect(address);
|
||||||
|
sendLine(socket, line);
|
||||||
|
String answer = receiveLine(socket);
|
||||||
|
return answer;
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.err.println("Error: " + e.getMessage());
|
||||||
|
}
|
||||||
|
return "*";
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void sendLine(Socket socket, String line) throws IOException {
|
||||||
|
OutputStream out = socket.getOutputStream();
|
||||||
|
PrintWriter writer = new PrintWriter(out);
|
||||||
|
writer.println(line);
|
||||||
|
writer.flush();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String receiveLine(Socket socket) throws IOException {
|
||||||
|
InputStream in = socket.getInputStream();
|
||||||
|
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
|
||||||
|
return reader.readLine();
|
||||||
|
}
|
||||||
|
}
|
60
src/praktikum04/SorterServer.java
Normal file
60
src/praktikum04/SorterServer.java
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
package praktikum04;
|
||||||
|
|
||||||
|
import java.io.*;
|
||||||
|
import java.net.*;
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
public class SorterServer implements Runnable {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
|
||||||
|
final int port = 12345;
|
||||||
|
try (ServerSocket socket = new ServerSocket(port)) {
|
||||||
|
while (true) {
|
||||||
|
Socket client = socket.accept();
|
||||||
|
Thread thread = new Thread(new SorterServer(client));
|
||||||
|
thread.start();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception e) {
|
||||||
|
System.err.println("Error: " + e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Socket client;
|
||||||
|
|
||||||
|
private SorterServer(Socket client) {
|
||||||
|
this.client = client;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void run() {
|
||||||
|
try {
|
||||||
|
String line = receiveLine(client);
|
||||||
|
char[] chars = line.toCharArray();
|
||||||
|
Arrays.sort(chars);
|
||||||
|
String answer = new String(chars);
|
||||||
|
sendLine(client, answer);
|
||||||
|
System.out.println(line + " -> " + answer);
|
||||||
|
}
|
||||||
|
catch (Exception e) {
|
||||||
|
System.err.println("Error: " + e.getMessage());
|
||||||
|
}
|
||||||
|
finally {
|
||||||
|
try { client.close(); } catch (Exception e) {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void sendLine(Socket socket, String line) throws IOException {
|
||||||
|
OutputStream out = socket.getOutputStream();
|
||||||
|
PrintWriter writer = new PrintWriter(out);
|
||||||
|
writer.println(line);
|
||||||
|
writer.flush();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String receiveLine(Socket socket) throws IOException {
|
||||||
|
InputStream in = socket.getInputStream();
|
||||||
|
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
|
||||||
|
return reader.readLine();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user