Uses 1123K of libraries. Click here for Pure Java version (4920L/29K).
!7 lib 1400216 import com.dosse.upnp.*; static int port = 1234; cmodule2 HolePuncher > DynPrintLog { switchable int port = 1234; S info; start-thread { serveHttp(port); print("Attempting UPnP port forwarding..."); if (UPnP.isUPnPAvailable()) { if (UPnP.isMappedTCP(port)) info("UPnP port forwarding not enabled: port is already mapped"); else if (UPnP.openPortTCP(port)) info("UPnP port forwarding enabled. port " + port + " opened"); else info("UPnP port forwarding failed"); } else info("UPnP is not available"); } void info(S info) { setField(info := print(info)); } } 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: | 218 / 782 |
Version history: | 3 change(s) |
Referenced in: | #1031416 - Local Gazelle [for users] |