Java DatagramSocket en SOCKS5 UDP-oerdracht
Begryp wêrom't in Java UDP-socket in SOCKS5 UDP-ymplemintaasje nedich hat, sels as TCP-ferbiningen al SOCKS brûke.
Dyn Java HTTP-fersyk wurket fia SOCKS, mar in UDP-funksje stjoert noch altyd ferkear direkt of mislearret. It ynstellen fan de SOCKS-eigenskippen fan 'e JVM jout DatagramSocket gjin SOCKS5 UDP-ymplemintaasje.
De DatagramSocket-API stjoert en ûntfangt datagrammen dy't oan netwurk-einpunten adressearre binne. De metoade connect() kiest in peer foar dat socket. Hy docht gjin SOCKS-ûnderhanneling mei de peer.
In SOCKS5 UDP-rûte freget ekstra wurk
SOCKS5 definiearret in UDP-assoasjaasje dy't oer in TCP-kontrôleferbining oprjochte wurdt. Dêrnei wikselet de klant ynkapsulearre datagrammen út mei it oerdrachtsadres dat de proxy leveret. Elk ynkapsulearre berjocht neamt syn bestimming. In klantymplemintaasje moat dy ynkapseling en de libbensdoer fan de kontrôleferbining behearskje.
In gewoan UDP-socket rjochtsje op 'e TCP-lústerpoarte fan 'e proxy slacht dy stappen oer. De rauwe datagrammen fan dyn applikaasje nei dat adres stjoere is gjin ferfanging foar de assoasjaasje.
Kies in biblioteek of applikaasjefunksje dy't eksplisyt SOCKS5 UDP-oerdracht stipet, en befêstigje dat de tsjinner dat ek docht. In biblioteek dy't SOCKS-stipe oankundiget, ymplemintearret miskien allinnich TCP CONNECT. De protokolspesifikaasje ûnderskiedt de opdrachten.
De UDP-oerdracht hat ek in brûkber paad nedich
In slagge TCP-ferbining nei de proxy leit allinnich it kontrôlepaad oan. Firewalls of NAT-gedrach kinne datagrammen nei de oerdracht noch hinderje. Sammelje it werombrochte oerdracht-einpunt en elke oerdrachtflater foardatsto konkludearrest dat de bestimming fan 'e applikaasje offline is.
Ta beslút foeget SOCKS-transportstipe gjin leveringsgarânsjes ta oan UDP. De eigen tiidlimitinen fan dyn applikaasje, it omgean mei ferlies en de beheiningen fan berjochtgrutte jilde noch hieltyd nei't it paad feroare is.