ଏକ .NET ସକେଟ୍କୁ SOCKS ହ୍ୟାଣ୍ଡସେକ୍ ଦରକାର
ଆପ୍ଲିକେସନ୍ ବାଇଟ୍ଗୁଡ଼ିକ SOCKS ପ୍ରକ୍ସି ମାଧ୍ୟମରେ ଯିବା ପୂର୍ବରୁ ଏକ କଞ୍ଚା .NET TCP ସକେଟ୍ କଣ କରିବା ଆବଶ୍ୟକ ତାହା ବ୍ୟାଖ୍ୟା କରେ।
Socket.Connect() କୁ SOCKS ସର୍ଭରକୁ ନିର୍ଦ୍ଦେଶ କରିବା ସେହି ସର୍ଭର ସହିତ ଏକ TCP ସଂଯୋଗ ଖୋଲେ। ପରବର୍ତ୍ତୀ ବାଇଟ୍ଗୁଡ଼ିକ ତଥାପି SOCKS କହିବା ଆବଶ୍ୟକ। ଆପଣଙ୍କ ଆପ୍ଲିକେସନର ପ୍ରୋଟୋକଲ୍ ତୁରନ୍ତ ପଠାଇବା ସର୍ଭରକୁ ଅନ୍ୟ ଏକ ବାର୍ତ୍ତାଳାପ ଅପେକ୍ଷାରେ ଛାଡ଼ିଦିଏ।
SOCKS5 ସହିତ, ସଂଯୋଗ ସ୍ଥାପନରେ ପଦ୍ଧତି ବୁଝାମଣା, ଯେକୌଣସି ମନୋନୀତ ପ୍ରମାଣୀକରଣ ବିନିମୟ ଏବଂ ଗନ୍ତବ୍ୟସ୍ଥଳକୁ ନାମ ଦେଉଥିବା ଏକ ଅନୁରୋଧ ଅନ୍ତର୍ଭୁକ୍ତ। କେବଳ ଏକ ସଫଳ ଉତ୍ତର ଆପ୍ଲିକେସନର ବାଇଟ୍ଗୁଡ଼ିକ ପାଇଁ ପଥ ଖୋଲେ। ଏହି ପର୍ଯ୍ୟାୟଗୁଡ଼ିକ RFC 1928 ରେ ପରିଭାଷିତ।
ବୁଝାମଣାକୁ ସଂଯୋଗ ସ୍ତରରେ ରଖନ୍ତୁ
ନିଜସ୍ୱ TCP ପ୍ରୋଟୋକଲ୍ ଥିବା ଏକ ଆପ୍ଲିକେସନ୍ ଏକ ପ୍ରତିଷ୍ଠିତ ଷ୍ଟ୍ରିମ୍ ଫେରାଉଥିବା ପ୍ରକ୍ସି-ସଚେତନ କନେକ୍ଟର ବ୍ୟବହାର କରିପାରେ। ଆପ୍ଲିକେସନର ଅବଶିଷ୍ଟ ଅଂଶ ତାପରେ ସେହି ଷ୍ଟ୍ରିମ୍ ମାଧ୍ୟମରେ ପଢ଼େ ଏବଂ ଲେଖେ। ଏକ କନେକ୍ଟରକୁ ଆଂଶିକ ପଠନ, ପରିବର୍ତ୍ତନଶୀଳ ଦୈର୍ଘ୍ୟର ଠିକଣା, ପ୍ରମାଣୀକରଣ ବିଫଳତା ଏବଂ ବୁଝାମଣା ପାଇଁ ଏକ ସମୟସୀମା ବିଚାର କରିବା ଆବଶ୍ୟକ।
ଏକ ନିର୍ଦ୍ଦିଷ୍ଟ ଆକାରର ବଫର ପଢ଼ି ସଫଳତା ଅନୁମାନ କରୁଥିବା ହସ୍ତଲିଖିତ କାର୍ଯ୍ୟାନ୍ୱୟନ ଦୁର୍ବଳ। TCP SOCKS ସନ୍ଦେଶଗୁଡ଼ିକର ସୀମା ସଂରକ୍ଷଣ କରେ ନାହିଁ। ଆପ୍ଲିକେସନ୍ ପ୍ରୋଟୋକଲ୍ ଆରମ୍ଭ କରିବା ପୂର୍ବରୁ ଏହାର ଠିକଣା ପ୍ରକାର ଦ୍ୱାରା ବର୍ଣ୍ଣିତ ସମ୍ପୂର୍ଣ୍ଣ ଉତ୍ତର ପଢ଼ନ୍ତୁ। .NET 7+ CONNECT ଉତ୍ତର ପାଠକ ସେହି ପର୍ଯ୍ୟାୟ ଦର୍ଶାଏ।
ଯଦି ଏକ ରକ୍ଷଣାବେକ୍ଷଣ କରାଯାଇଥିବା ଲାଇବ୍ରେରୀ ପୂର୍ବରୁ ଏହି ସଂଯୋଗ ସ୍ତର ପ୍ରଦାନ କରେ, ଏହାର ସମର୍ଥିତ SOCKS ସଂସ୍କରଣ, ପ୍ରମାଣୀକରଣ ପଦ୍ଧତି ଏବଂ ଲକ୍ଷ୍ୟ ଫ୍ରେମୱାର୍କ ଯାଞ୍ଚ କରନ୍ତୁ। ଦଶ ବର୍ଷ ପୁରୁଣା ଏକ ଫୋରମ ଲିଙ୍କ୍ ଅନୁସନ୍ଧାନ ପାଇଁ ଆରମ୍ଭ ବିନ୍ଦୁ, ବର୍ତ୍ତମାନର ସୁସଙ୍ଗତତାର ପ୍ରମାଣ ନୁହେଁ।
HTTP କ୍ଲାଇଣ୍ଟ ବିନ୍ୟାସର ଏକ ପୃଥକ ପରିସର ଅଛି
ଏକ HTTP କ୍ଲାଇଣ୍ଟର ପ୍ରକ୍ସି ସେଟିଂ ସେହି HTTP କ୍ଲାଇଣ୍ଟକୁ ବିନ୍ୟାସ କରେ। ଏହା ପ୍ରକ୍ରିୟାର ପ୍ରତ୍ୟେକ କଞ୍ଚା ସକେଟ୍ ପରିବର୍ତ୍ତନ କରେ ନାହିଁ। Socket API ଏକ ନେଟୱାର୍କ ଏଣ୍ଡପଏଣ୍ଟ ଗ୍ରହଣ କରେ ଏବଂ ଉଚ୍ଚ-ସ୍ତରୀୟ ବୁଝାମଣା ଆହ୍ୱାନକାରୀକୁ ଛାଡ଼ିଦିଏ।
ଏକ ଏନକ୍ରିପ୍ଟେଡ୍ ଆପ୍ଲିକେସନ୍ ପ୍ରୋଟୋକଲ୍ ପାଇଁ, ପ୍ରକ୍ସି ସୁଡ଼ଙ୍ଗ ସ୍ଥାପିତ ହେବା ପରେ ଏହାର TLS ହ୍ୟାଣ୍ଡସେକ୍ କରନ୍ତୁ। ସେହି ପର୍ଯ୍ୟାୟରେ ଉଦ୍ଦିଷ୍ଟ ଗନ୍ତବ୍ୟସ୍ଥଳର ପରିଚୟ ବୈଧ କରନ୍ତୁ। ପ୍ରକ୍ସି ପ୍ରମାଣୀକରଣ ଏବଂ ଗନ୍ତବ୍ୟସ୍ଥଳ ପ୍ରମାଣୀକରଣ ସମାନ ଅନ୍ତର୍ନିହିତ ଷ୍ଟ୍ରିମ୍ ବ୍ୟବହାର କରୁଥିଲେ ମଧ୍ୟ ପୃଥକ ରହେ।