Java DatagramSocket ଏବଂ SOCKS5 UDP ରିଲେ
TCP ସଂଯୋଗଗୁଡ଼ିକ ପୂର୍ବରୁ SOCKS ବ୍ୟବହାର କରୁଥିଲେ ମଧ୍ୟ Java UDP ସକେଟକୁ SOCKS5 UDP କାର୍ଯ୍ୟକାରୀ କରିବା କାହିଁକି ଆବଶ୍ୟକ ତାହା ବୁଝନ୍ତୁ।
ଆପଣଙ୍କ Java HTTP ଅନୁରୋଧ SOCKS ମାଧ୍ୟମରେ କାମ କରେ, କିନ୍ତୁ ଏକ UDP ବୈଶିଷ୍ଟ୍ୟ ଏବେ ମଧ୍ୟ ଟ୍ରାଫିକ୍ ସିଧାସଳଖ ପଠାଏ କିମ୍ବା ବିଫଳ ହୁଏ। JVM ର SOCKS ଗୁଣ ସେଟ୍ କରିବା DatagramSocket କୁ SOCKS5 UDP କାର୍ଯ୍ୟକାରୀ ଦିଏ ନାହିଁ।
DatagramSocket API ନେଟୱାର୍କ ଏଣ୍ଡପଏଣ୍ଟକୁ ଠିକଣା କରାଯାଇଥିବା ଡାଟାଗ୍ରାମ ପଠାଏ ଏବଂ ଗ୍ରହଣ କରେ। ଏହାର connect() ପଦ୍ଧତି ସେହି ସକେଟ୍ ପାଇଁ ଏକ ସାଥୀ ଚୟନ କରେ। ଏହା ସାଥୀ ସହିତ SOCKS ଆଲୋଚନା କରେ ନାହିଁ।
SOCKS5 UDP ପଥକୁ ଅତିରିକ୍ତ କାର୍ଯ୍ୟ ଆବଶ୍ୟକ
SOCKS5 ଏକ TCP ନିୟନ୍ତ୍ରଣ ସଂଯୋଗ ଉପରେ ସ୍ଥାପିତ UDP ସଂଯୋଗ ପରିଭାଷିତ କରେ। ତା’ପରେ କ୍ଲାଏଣ୍ଟ ପ୍ରକ୍ସି ଦେଇଥିବା ରିଲେ ଠିକଣା ସହିତ ଏନକାପସୁଲେଟେଡ୍ ଡାଟାଗ୍ରାମ ବିନିମୟ କରେ। ପ୍ରତ୍ୟେକ ଏନକାପସୁଲେଟେଡ୍ ସନ୍ଦେଶ ଏହାର ଗନ୍ତବ୍ୟ ଚିହ୍ନଟ କରେ। କ୍ଲାଏଣ୍ଟ କାର୍ଯ୍ୟକାରୀକରଣ ସେହି ଫ୍ରେମିଂ ଏବଂ ନିୟନ୍ତ୍ରଣ ସଂଯୋଗର ଆୟୁ ପରିଚାଳନା କରିବା ଆବଶ୍ୟକ।
ଏକ ସାଧାରଣ UDP ସକେଟ୍ ପ୍ରକ୍ସିର TCP ଶୁଣିବା ପୋର୍ଟକୁ ନିର୍ଦ୍ଦେଶ କଲେ ସେହି ପଦକ୍ଷେପଗୁଡ଼ିକ ଛାଡ଼ିଯାଏ। ଆପଣଙ୍କ ଆପ୍ଲିକେସନର କଞ୍ଚା ଡାଟାଗ୍ରାମ ସେହି ଠିକଣାକୁ ପଠାଇବା ସଂଯୋଗର ବିକଳ୍ପ ନୁହେଁ।
SOCKS5 UDP ରିଲେ ସ୍ପଷ୍ଟ ଭାବରେ ସମର୍ଥନ କରୁଥିବା ଏକ ଲାଇବ୍ରେରୀ କିମ୍ବା ଆପ୍ଲିକେସନ ବୈଶିଷ୍ଟ୍ୟ ଚୟନ କରନ୍ତୁ ଏବଂ ସର୍ଭର ମଧ୍ୟ ଏହାକୁ ସମର୍ଥନ କରે ବୋଲି ନିଶ୍ଚିତ କରନ୍ତୁ। SOCKS ସମର୍ଥନର ବିଜ୍ଞାପନ ଦେଉଥିବା ଲାଇବ୍ରେରୀ କେବଳ TCP CONNECT କାର୍ଯ୍ୟକାରୀ କରିପାରେ। ପ୍ରୋଟୋକଲ ନିର୍ଦ୍ଦିଷ୍ଟକରଣ ସେହି ନିର୍ଦ୍ଦେଶଗୁଡ଼ିକୁ ପୃଥକ କରେ।
UDP ରିଲେକୁ ମଧ୍ୟ ଏକ ବ୍ୟବହାରଯୋଗ୍ୟ ପଥ ଆବଶ୍ୟକ
ପ୍ରକ୍ସି ସହିତ ସଫଳ TCP ସଂଯୋଗ କେବଳ ନିୟନ୍ତ୍ରଣ ପଥ ସ୍ଥାପନ କରେ। ଅଗ୍ନିପ୍ରାଚୀର କିମ୍ବା NAT ଆଚରଣ ରିଲେକୁ ପଠାଯାଇଥିବା ଡାଟାଗ୍ରାମରେ ଏବେ ମଧ୍ୟ ବାଧା ଦେଇପାରେ। ଆପ୍ଲିକେସନ ଗନ୍ତବ୍ୟ ଅଫଲାଇନ ଅଛି ବୋଲି ସିଦ୍ଧାନ୍ତ ନେବା ପୂର୍ବରୁ ଫେରାଯାଇଥିବା ରିଲେ ଏଣ୍ଡପଏଣ୍ଟ ଏବଂ ଯେକୌଣସି ରିଲେ ତ୍ରୁଟି ସଂଗ୍ରହ କରନ୍ତୁ।
ଶେଷରେ, SOCKS ପରିବହନ ସମର୍ଥନ UDP ରେ ବିତରଣ ଗ୍ୟାରେଣ୍ଟି ଯୋଡ଼େ ନାହିଁ। ପଥ ପରିବର୍ତ୍ତନ ପରେ ମଧ୍ୟ ଆପଣଙ୍କ ଆପ୍ଲିକେସନର ନିଜସ୍ୱ ସମୟ ସୀମା, କ୍ଷତି ପରିଚାଳନା ଏବଂ ସନ୍ଦେଶ-ଆକାର ସୀମା ଲାଗୁ ରହେ।