CONNECT
В ответ на CONNECT, BND.PORT содержит номер порта, который сервер назначает для соединения с указанным хостом, а BND.ADDR содержит связанный IP-адрес. Выданный BND.ADDR зачастую отличается от IP-адреса, который клиент использует для доступа к SOCKS-северу, так как такие сервера часто имеют несколько IP-адресов. Ожидается, что сервер будет использовать DST.ADDR и DST.PORT и адрес клиента при обработке запроса CONNECT.
BIND
Запрос BIND используется в протоколах, которые требуют чтобы клиент принимал соединение со стороны сервера. Хорошим примером этого является FTP, который использует основное соединение клиент-к-серверу для комманд и сообщений, но может использовать соединение сервер-к-клиенту для передачи данных по запросу (например LS, GET, PUT).
Ожидается, что клиентская сторона прикладного протокола будет использовать запрос BIND только для установки вторичного соединения, после первичного соединения, установленного с использованием CONNECT. Ожидается, что сервер будет использовать DST.ADDR и DST.PORT при обработке запроса BIND.
SOCKS-сервер посылает два ответа клиенту в течении операции BIND. Первый послыается после того, как сервер создает и привязывает новый сокет. Поле BND.PORT содержит номер порта, который SOCKS-сервер выделил для входящего соединения. Поле BND.ADDR содержит связанный IP-адрес. Клиент может использовать эту информацию для уведомления (через первичное соединение) приложения-сервера об адресе для взаимодействия. Второе уведомление происходит после ожидаемого входящего соединения или неудачной попытке входящего соединения.
При втором ответе поля BND.PORT и BND.ADDR содержат адрес и номер порта присоединившегося хоста.