Ombi lako la Java HTTP hufanya kazi kupitia SOCKS, lakini kipengele cha UDP bado kinatuma trafiki moja kwa moja au kinashindwa. Kuweka sifa za SOCKS za JVM hakumpi DatagramSocket utekelezaji wa SOCKS5 UDP.

API ya DatagramSocket hutuma na hupokea datagram zinazoelekezwa kwa vituo vya mwisho vya mtandao. Njia yake connect() huchagua mwenza kwa socket hiyo. Haifanyi mazungumzo ya SOCKS na mwenza.

Njia ya UDP kwa SOCKS5 inahitaji kazi ya ziada

SOCKS5 inafafanua muunganisho wa UDP unaowekwa juu ya muunganisho wa udhibiti wa TCP. Kisha mteja hubadilishana datagram zilizofungwa na anwani ya upelekaji inayotolewa na proksi. Kila ujumbe uliofungwa hubainisha lengo lake. Utekelezaji wa mteja unapaswa kushughulikia ufungaji huo na maisha ya muunganisho wa udhibiti.

Kuelekeza socket ya kawaida ya UDP kwenye lango la TCP la kusikiliza la proksi kunaruka hatua hizo. Kutuma datagram mbichi za programu yako kwenye anwani hiyo si mbadala wa muunganisho.

Chagua maktaba au kipengele cha programu kinachoauni waziwazi upelekaji wa UDP kwa SOCKS5, na uthibitisha kwamba seva pia inauauni. Maktaba inayotangaza uauni wa SOCKS inaweza kutekeleza TCP CONNECT pekee. Vipimo vya itifaki hutofautisha amri hizo.

Upelekaji wa UDP pia unahitaji njia inayoweza kutumika

Muunganisho wa TCP uliofanikiwa kwa proksi huweka njia ya udhibiti pekee. Ngome au tabia ya NAT bado zinaweza kuingilia datagram zinazotumwa kwa upelekaji. Kusanya kituo cha mwisho cha upelekaji kinachorudishwa na hitilafu yoyote ya upelekaji kabla ya kuhitimisha kuwa lengo la programu haliko mtandaoni.

Hatimaye, uauni wa usafirishaji wa SOCKS hauongezi dhamana za uwasilishaji kwa UDP. Muda wa mwisho wa programu yako wenyewe, utunzaji wa upotevu na mipaka ya ukubwa wa ujumbe bado hutumika baada ya njia kubadilika.

Makala zinazohusiana