Uses 1123K of libraries. Click here for Pure Java version (4920L/29K).
1 | !7 |
2 | |
3 | lib 1400216 import com.dosse.upnp.*; |
4 | |
5 | static int port = 1234; |
6 | |
7 | cmodule2 HolePuncher > DynPrintLog {
|
8 | switchable int port = 1234; |
9 | S info; |
10 | |
11 | start-thread {
|
12 | serveHttp(port); |
13 | print("Attempting UPnP port forwarding...");
|
14 | if (UPnP.isUPnPAvailable()) {
|
15 | if (UPnP.isMappedTCP(port)) |
16 | info("UPnP port forwarding not enabled: port is already mapped");
|
17 | else if (UPnP.openPortTCP(port)) |
18 | info("UPnP port forwarding enabled. port " + port + " opened");
|
19 | else |
20 | info("UPnP port forwarding failed");
|
21 | } else |
22 | info("UPnP is not available");
|
23 | } |
24 | |
25 | void info(S info) {
|
26 | setField(info := print(info)); |
27 | } |
28 | } |
29 | |
30 | html { ret "It works brah!!"; } |
Began life as a copy of #1024025
download show line numbers debug dex old transpilations
Travelled to 4 computer(s): bhatertpkbcr, mqqgnosmbjvj, pyentgdyhuwx, vouqrxazstgt
No comments. add comment
| Snippet ID: | #1031421 |
| Snippet name: | "Hole Puncher" [in the firewall, i.e. see if you can run a public webserver] |
| Eternal ID of this version: | #1031421/4 |
| Text MD5: | 8d2997f1859e07d41705f9f3cb85593c |
| Transpilation MD5: | 21f286bca11671e9d78a271e1ce3a445 |
| Author: | stefan |
| Category: | javax / networking |
| Type: | JavaX source code (Dynamic Module) |
| Public (visible to everyone): | Yes |
| Archived (hidden from active list): | No |
| Created/modified: | 2021-06-12 05:07:46 |
| Source code size: | 722 bytes / 30 lines |
| Pitched / IR pitched: | No / No |
| Views / Downloads: | 452 / 1079 |
| Version history: | 3 change(s) |
| Referenced in: | [show references] |