- wr.write("Hello, world!\n"); wr.flush();
-
- val buf = new Array[Char](4096);
- val line = new StringBuilder;
-
- val R = new Breaks;
- val L = new Breaks;
- var any = false;
- R.breakable {
- while (true) {
- val n = rd.read(buf);
- if (n <= 0) R.break;
- var pos = 0;
- L.breakable {
- while (true) {
- val nl = buf.indexOf('\n', pos);
- if (nl == -1 || nl >= n) {
- if (pos < n)
- { line.appendAll(buf, pos, n - pos); any = true; }
- L.break;
- }
- val s = if (!any)
- new String(buf, pos, nl - pos);
- else {
- line.appendAll(buf, pos, nl - pos);
- val s = line.mkString;
- line.clear(); any = false;
- s
- };
- println(s"found line `$s'");
- pos = nl + 1;
- }
- }
- }
- }
-
- rd.close();
- wr.close();
- } finally {
- conn.close();
- }