#Trying to connect via TCP

1 messages · Page 1 of 1 (latest)

vestal nymph
#

Asking here instead of spamming #zig (although I like spamming #zig ):

This is what I have:

fn run_client() !void {
    std.Thread.sleep(std.time.ns_per_s);
    const address = try std.net.Address.parseIp4("0.0.0.0", 1234);
    var conn = try std.net.tcpConnectToAddress(address);
    defer conn.close();

    var buf: [1024]u8 = undefined;
    var writer = &conn.writer(&buf);
    var interface: *writer.Writer = &writer.interface;

    try interface.write("Hello, world!\n");
}

Obviously, I don't know what I'm doing and got this error:

src/main.zig:144:28: error: no field named 'Writer' in struct 'net.Stream.Writer__struct_23189'
    var interface: *writer.Writer = &writer.interface;
                           ^~~~~~
/home/vircodificat/.local/zig/lib/std/net.zig:2217:17: note: struct declared here
        else => struct {
                ^~~~~~

I feel like I'm just a few tweaks off. Can anyone help me out?

lone depot
vestal nymph
#

How fix? 🥺

blissful crow
#

you can remove the explicit type or you could change it to *std.Io.Writer

vestal nymph
#

When I do that, I get this new error:

src/main.zig:144:37: error: expected type '*Io.Writer', found '*const Io.Writer'
    var interface: *std.Io.Writer = &writer.interface;
                                    ^~~~~~~~~~~~~~~~~
src/main.zig:144:37: note: cast discards const qualifier

Where does the const qualifier come from?

polar lagoon
#

var writer = &con.writer() is probably making writer a const pointer, maybe drop the & there?