From: Niki Roo Date: Tue, 23 Apr 2019 15:26:03 +0000 (+0200) Subject: server: string->stream, step 1 X-Git-Url: http://git.nikiroo.be/?p=nikiroo-utils.git;a=commitdiff_plain;h=9af739b58e2cd5357a21d6fd0410049ab2a2bff3 server: string->stream, step 1 --- diff --git a/src/be/nikiroo/utils/serial/server/ConnectAction.java b/src/be/nikiroo/utils/serial/server/ConnectAction.java index be98708..a377ced 100644 --- a/src/be/nikiroo/utils/serial/server/ConnectAction.java +++ b/src/be/nikiroo/utils/serial/server/ConnectAction.java @@ -2,8 +2,9 @@ package be.nikiroo.utils.serial.server; import java.io.BufferedReader; import java.io.IOException; +import java.io.InputStream; import java.io.InputStreamReader; -import java.io.OutputStreamWriter; +import java.io.OutputStream; import java.net.Socket; import javax.net.ssl.SSLException; @@ -31,8 +32,8 @@ abstract class ConnectAction { private CryptUtils crypt; private Object lock = new Object(); - private BufferedReader in; - private OutputStreamWriter out; + private InputStream in; + private OutputStream out; private boolean contentToSend; private long bytesReceived; @@ -136,17 +137,16 @@ abstract class ConnectAction { */ public void connect() { try { - in = new BufferedReader(new InputStreamReader(s.getInputStream(), - "UTF-8")); + in = s.getInputStream(); try { - out = new OutputStreamWriter(s.getOutputStream(), "UTF-8"); + out = s.getOutputStream(); try { if (server) { String line; try { line = readLine(in); } catch (SSLException e) { - out.write("Unauthorized\n"); + out.write("Unauthorized\n".getBytes()); throw e; } @@ -334,8 +334,11 @@ abstract class ConnectAction { * @throws SSLException * in case of crypt error */ - private String readLine(BufferedReader in) throws IOException { - String line = in.readLine(); + private String readLine(InputStream in) throws IOException { + if (inReader == null) { + inReader = new BufferedReader(new InputStreamReader(in)); + } + String line = inReader.readLine(); if (line != null) { bytesReceived += line.length(); if (crypt != null) { @@ -346,6 +349,8 @@ abstract class ConnectAction { return line; } + private BufferedReader inReader; + /** * Write a line, possible encrypted. * @@ -358,18 +363,17 @@ abstract class ConnectAction { * @throws SSLException * in case of crypt error */ - private void writeLine(OutputStreamWriter out, String line) - throws IOException { + private void writeLine(OutputStream out, String line) throws IOException { if (crypt == null) { - out.write(line); + out.write(line.getBytes()); bytesSent += line.length(); } else { // TODO: how NOT to create so many big Strings? String b64 = crypt.encrypt64(line, false); - out.write(b64); + out.write(b64.getBytes()); bytesSent += b64.length(); } - out.write("\n"); + out.write("\n".getBytes()); bytesSent++; } } \ No newline at end of file