Sample code for 30+ languages & platforms
Zig

TCP/IP Socket Connect to Remote Host:Port

See more Socket/SSL/TLS Examples

Demonstrates how to create a TCP/IP socket, connect to a remote host:port, and receive a "Hello World!" message.

Chilkat Zig Downloads

Zig
const std = @import("std");
const chilkat = @import("chilkat");

pub fn main(init: std.process.Init) !void {
    const alloc = init.arena.allocator();

    // This example requires the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    const socket = try chilkat.Socket.init();
    defer socket.deinit();

    // Connect to port 5555 of localhost.
    // The string "localhost" is for testing on a single computer.
    // It would typically be replaced with an IP hostname, such
    // as "www.chilkatsoft.com".
    const ssl = false;
    const max_wait_millisec = 20000;
    socket.connect("localhost", 5555, ssl, max_wait_millisec) catch {
        std.debug.print("{s}\n", .{try socket.getLastErrorText(alloc)});
        return;
    };

    // Set maximum timeouts for reading an writing (in millisec)
    socket.setMaxReadIdleMs(10000);
    socket.setMaxSendIdleMs(10000);

    // Pretend, for the sake of the example, that the
    // ficticious server is going to send a "Hello World!"
    // after accepting the connection.
    // Note: Technically, the ReceiveString may not receive the
    // complete string, although it's highly probable given the short
    // length of the "Hello World!" message.
    // See this Chilkat blog post for more information:
    // <a href="http://www.cknotes.com/?p=302">http://www.cknotes.com/?p=302</a>
    const received_msg = socket.receiveString(alloc) catch {
        std.debug.print("{s}\n", .{try socket.getLastErrorText(alloc)});
        return;
    };

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

    std.debug.print("{s}\n", .{received_msg});
}