Java HTTP-beiðnin þín virkar í gegnum SOCKS, en UDP-eiginleiki sendir samt umferð beint eða mistekst. Að stilla SOCKS-eiginleika JVM-innar gefur DatagramSocket ekki SOCKS5 UDP-útfærslu.

DatagramSocket-forritaskilinn sendir og tekur á móti gagnagrönnum sem eru stílaðir á netendapunkta. Aðferðin connect() velur jafningja fyrir þann sokkur. Hún framkvæmir ekki SOCKS-samning við jafningjann.

SOCKS5 UDP-leið krefst aukavinnu

SOCKS5 skilgreinir UDP-tengingu sem er komin á fót yfir TCP-stýritengingu. Síðan skiptir biðlarinn um innvafða gagnagranna við endursendingarfangið sem milliþjónustan gefur. Hver innvafin skilaboð tilgreina áfangastað sinn. Útfærsla biðlarans þarf að höndla þessa umgjörð og líftíma stýritengingarinnar.

Að beina venjulegum UDP-sokki að TCP-hlustunarporti milliþjónustunnar sleppir þessum skrefum. Að senda hrá gagnagranna forritsins þíns á það fang er ekki staðgengill fyrir tenginguna.

Veldu safn eða forritseiginleika sem styður SOCKS5 UDP-endursendingu bersýnilega og staðfestu að þjónninn styðji hana líka. Safn sem auglýsir SOCKS-stuðning útfærir kannski aðeins TCP CONNECT. Samskiptareglurnar greina á milli skipananna.

UDP-endursendingin þarf líka nothæfa leið

Árangursrík TCP-tenging við milliþjónustuna leggur aðeins stýrileiðina. Eldveggir eða hegðun NAT geta enn truflað gagnagranna sem sendir eru til endursendingarinnar. Safnaðu endursendingarfanginu sem kemur til baka og hverri endursendingarvillu áður en þú ályktar að áfangastaður forritsins sé ótengdur.

Að lokum bætir SOCKS-flutningsstuðningur engum afhendingartryggingum við UDP. Eigin tímatakmarkanir forritsins þíns, meðferð taps og takmörk skilaboðastærðar gilda áfram eftir að leiðin breytist.

Tengdir greinar