Transpiled version (8872L) is out of date.
sclass StefansOS_ConnectToServer implements AutoCloseable { DialogIO io; volatile bool on, verbose; Set<S> subs = synchroLinkedHashSet(); VF1<S> onLine; S server = "botcompany.de"; L<Runnable> onConnected = syncList(); event newLine(S text); void start { if (on) ret; on = true; _connect(); doEvery_daemon_highPriority(30000, r { if (io != null) sendLine("") }); } void cleanMeUp { on = false; closeIO(); } public void close { cleanMeUp(); } void _connect { thread "Connect" { while (licensed() && on) { if (!tryToConnect()) continue with sleepSeconds(1); try { var io = talkTo(server, 6000); io.getSocket().setSoTimeout(30000+10000); print("Connected."); pcallFAll(onConnected); temp tempAfterwards(r { print("Disconnected.") }); sendLine(io, format("computerID=*", computerID())); StefansOS_ConnectToServer.this.io = io; for (S channel : cloneList(subs)) sendLine(format("sub *", channel)); print("Sent computer ID: " + computerID()); S line; while ((line = io.readLine()) != null) { if (verbose) print("Server said: " + line); pcallF(onLine, line); newLine(line); } } catch e { // pcall would also do an annoying message box printShortException(e); } closeIO(); sleepSeconds(5); } } } void closeIO { if (io != null) { pcall { io.close(); } io = null; } } bool connected() { ret io != null; } void sub(S channel) { if (subs.add(channel) && io != null) pcall { sendLine(format("sub *", channel); } } void startWithSubs(S... channels) { for (S channel : channels) sub(channel); start(); } void sendLine(DialogIO io default io, S line) { if (io != null) { if (verbose) print("Sending to server: " + line); io.sendLine(line); } else print("Can't send, not connected: " + line); } swappable bool tryToConnect() { true; } }
Began life as a copy of #1016578
download show line numbers debug dex old transpilations
Travelled to 15 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, irmadwmeruwu, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt, xrpafgyirdlv
No comments. add comment
Snippet ID: | #1016875 |
Snippet name: | StefansOS_ConnectToServer |
Eternal ID of this version: | #1016875/28 |
Text MD5: | bfa23e4f3b793b8c9afe51b9d8e94b63 |
Author: | stefan |
Category: | javax / stefan's os |
Type: | JavaX fragment (include) |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2022-01-21 20:08:09 |
Source code size: | 2159 bytes / 74 lines |
Pitched / IR pitched: | No / No |
Views / Downloads: | 696 / 1432 |
Version history: | 27 change(s) |
Referenced in: | #1034167 - Standard Classes + Interfaces (LIVE, continuation of #1003674) |