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(); | |||||
} | |||||
} |
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(); | |||||
} | |||||
} |