Sample code for 30+ languages & platforms
React Native

Socket/SSL/TLS through SOCKS5 / SOCKS4 Proxy

See more Socket/SSL/TLS Examples

Demonstrates how to use the Chilkat Socket/SSL/TLS component/library with a SOCKS5 or SOCKS4 proxy server.

Chilkat React Native Downloads

React Native
import { Socket } from '@chilkat/react-native'

async function chilkatExample() {
  // This example requires the Chilkat API to have been previously unlocked.
  // See Global Unlock Sample for sample code.

  const socket = new Socket();

  // To use a SOCKS4 or SOCKS5 proxy, simply set the following
  // properties prior to calling Connect.  The connection may be SSL/TLS or 
  // non-secure - both will work with a SOCKS proxy.
  // The SOCKS hostname may be a domain name or 
  // IP address:
  socket.socksHostname = 'www.mysocksproxyserver.com';
  socket.socksPort = 1080;
  socket.socksUsername = 'myProxyLogin';
  socket.socksPassword = 'myProxyPassword';
  // Set the SOCKS version to 4 or 5 based on the version
  // of the SOCKS proxy server:
  socket.socksVersion = 5;
  // Note: SOCKS4 servers only support usernames without passwords.
  // SOCKS5 servers support full login/password authentication.

  // Connect to port 5555 of 192.168.1.108.
  // hostname may be a domain name or IP address.
  const hostname = '192.168.1.108';
  const ssl = false;
  const maxWaitMillisec = 20000;
  try {
    await socket.connectAsync(hostname, 5555, ssl, maxWaitMillisec);
  } catch {
    console.log(socket.lastErrorText);
    return;
  }

  // Set maximum timeouts for reading an writing (in millisec)
  socket.maxReadIdleMs = 10000;
  socket.maxSendIdleMs = 10000;

  // The server (in this example) is going to send a "Hello World!" 
  // message.  Read it:
  let receivedMsg: string;
  try {
    receivedMsg = await socket.receiveStringAsync();
  } catch {
    console.log(socket.lastErrorText);
    return;
  }

  // Close the connection with the server
  // Wait a max of 20 seconds (20000 millsec)
  await socket.closeAsync(20000);

  console.log(receivedMsg);
}