Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

macos : listen udp error #40

Closed
eyun-tv opened this issue Feb 18, 2022 · 2 comments
Closed

macos : listen udp error #40

eyun-tv opened this issue Feb 18, 2022 · 2 comments

Comments

@eyun-tv
Copy link

eyun-tv commented Feb 18, 2022

code is here https://github.com/eyun-tv/zig

when listen udp, failed
image

same code , when listen tcp, success
image

error code

+ zig build
+ exec ./zig-out/bin/zig
unexpected errno: 102
/usr/local/Cellar/zig/0.9.0/lib/zig/std/debug.zig:458:19: 0x10725d559 in std.debug.writeCurrentStackTrace (zig)
    while (it.next()) |return_address| {
                  ^
/usr/local/Cellar/zig/0.9.0/lib/zig/std/debug.zig:115:31: 0x10725ab26 in std.debug.dumpCurrentStackTrace (zig)
        writeCurrentStackTrace(stderr, debug_info, detectTTYConfig(), start_addr) catch |err| {
                              ^
/usr/local/Cellar/zig/0.9.0/lib/zig/std/os.zig:4985:40: 0x10725b1dd in std.os.unexpectedErrno (zig)
        std.debug.dumpCurrentStackTrace(null);
                                       ^
/usr/local/Cellar/zig/0.9.0/lib/zig/std/os.zig:3206:49: 0x10725be11 in std.os.listen (zig)
            else => |err| return unexpectedErrno(err),
                                                ^
/Users/z/rmw/zig/.zigmod/deps/git/git@github.com:MasterQ32/zig-network/network.zig:357:22: 0x107259ff5 in .network.Socket.listen (zig)
        try listen_fn(self.internal, 0);
                     ^
/Users/z/rmw/zig/src/main.zig:16:18: 0x107259c28 in main (zig)
    try sk.listen();
                 ^
/usr/local/Cellar/zig/0.9.0/lib/zig/std/start.zig:553:37: 0x10725e0a8 in std.start.callMain (zig)
            const result = root.main() catch |err| {
                                    ^
/usr/local/Cellar/zig/0.9.0/lib/zig/std/start.zig:495:12: 0x10725a507 in std.start.callMainWithArgs (zig)
    return @call(.{ .modifier = .always_inline }, callMain, .{});
           ^
/usr/local/Cellar/zig/0.9.0/lib/zig/std/start.zig:460:12: 0x10725a445 in std.start.main (zig)
    return @call(.{ .modifier = .always_inline }, callMainWithArgs, .{ @intCast(usize, c_argc), c_argv, envp });
           ^
???:?:?: 0x108dda4fd in ??? (???)
???:?:?: 0x0 in ??? (???)
error: Unexpected
/usr/local/Cellar/zig/0.9.0/lib/zig/std/os.zig:4987:5: 0x10725b1ec in std.os.unexpectedErrno (zig)
    return error.Unexpected;
    ^
/usr/local/Cellar/zig/0.9.0/lib/zig/std/os.zig:3206:27: 0x10725be1e in std.os.listen (zig)
            else => |err| return unexpectedErrno(err),
                          ^
/Users/z/rmw/zig/.zigmod/deps/git/git@github.com:MasterQ32/zig-network/network.zig:357:9: 0x10725a014 in .network.Socket.listen (zig)
        try listen_fn(self.internal, 0);
        ^
/Users/z/rmw/zig/src/main.zig:16:5: 0x107259c64 in main (zig)
    try sk.listen();
@ikskuh
Copy link
Owner

ikskuh commented Feb 18, 2022

UDP cannot listen in the sense of a tcp socket. Just bind the socket and you're done, you are now able to receive messages

@eyun-tv eyun-tv closed this as completed Feb 18, 2022
@eyun-tv
Copy link
Author

eyun-tv commented Feb 18, 2022

thanks , I remove listen , it works

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

const network = @import("network");

pub fn main() anyerror!void {
    try network.init();
    defer network.deinit();

    const sk = try network.Socket.create(.ipv4, .udp);
    defer sk.close();

    try sk.bindToPort(0);
    print("listen on udp://{}", .{sk.getLocalEndPoint()});
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants