Codync
A free, open-source 1:1 alternative to Grok Bot and Muse. Message Claude Code, Codex, Cursor and 40+ coding agents as persistent bots from your iPhone, Mac or Linux desktop. Group chats, threads, appr
🚵 STUN for Java
Translation pending
Developer toolsGitHub @umjammerOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗STUN for Java
STUN (RFC 8489 / 5389, Binding over UDP) client, server and classic NAT type discovery (RFC 3489 algorithm with RFC 5780 attributes).
try (DatagramSocket socket = new DatagramSocket()) {
StunClient client = new StunClient(socket);
// the reflexive address of this socket
InetSocketAddress mapped = client.bind(new InetSocketAddress("stun.example.com", 3478)).mappedAddress();
// OPEN_INTERNET, FULL_CONE, RESTRICTED_CONE, PORT_RESTRICTED_CONE, SYMMETRIC, SYMMETRIC_FIREWALL, UDP_BLOCKED
NatType type = client.discoverNatType(new InetSocketAddress("stun.example.com", 3478));
}
// primary 192.0.2.1:3478, alternate port 3479, alternate ip 192.0.2.2 (for CHANGE-REQUEST)
StunServer server = new StunServer(new InetSocketAddress("192.0.2.1", 3478), 3479, InetAddress.getByName("192.0.2.2")).start();
A server without an alternate ip answers "change ip" with 420, or delegates it to another server
by StunServer#setChangeIpRelay (the overlay network nodes relay to each other this way).
StunMessageTest ... RFC 5769 test vectorsNatTypeDiscoveryTest ... discovery against simulated NATs/firewalls (RFC 4787 mapping/filtering behaviors), uses 127.0.0.2IptablesFirewallTest ... discovery behind real iptables firewalls and SNAT, needs root
sudo mvn test -Dtest=IptablesFirewallTest -Dstun.iptables=true
image designed by @umjammer, drawn by nano banana