2 решения
1) Первое простое. Использовать библиотеку xNet. Там на сколько мне известно реализована работа с socks
2) Если же вам нужно сделать работу socks proxy через WebRequest тогда решение следующее:
Качаем библиотеку
ссылка
Потом создаем потомков SocksHttpWebResponse и SocksHttpWebRequest наследуясь от WebResponse и WebRequest как показано
ссылка
Использовать можно так
WebRequest _request;
WebResponse _response;
WebProxy proxy = new WebProxy(new Uri("socks5://192.168.0.111:1080"));
if (_proxy.Address.Scheme.Contains("socks"))
_request = SocksHttpWebRequest.Create(url);
else
_request = WebRequest.Create(url);
_request.Proxy = _proxy;
// ну а дальше все как обычно