🙄

【Zig】TCP クライアントで HTTP/1 リクエストを送信する

2024/07/12に公開

std.net.tcpConnectToAddress から std.net.Stream が生成される。Stream.writerStream.reader からそれぞれ std.io.Writerstd.io.io.Reader が返される

client.zig
const std = @import("std");
const net = std.net;
const print = std.debug.print;

pub fn main() !void {
    const port = try std.fmt.parseInt(u16, "8000", 10);
    const peer = try net.Address.parseIp4("127.0.0.1", port);

    const data = "GET / HTTP/1.1\r\n\r\n";
    var buffer: [1024]u8 = undefined;

    const stream = try net.tcpConnectToAddress(peer);
    defer stream.close();

    var writer = stream.writer();
    var reader = stream.reader();

    _ = try writer.write(data);
    _ = try reader.read(&buffer);
    print("{s}\n", .{buffer});
}

Discussion