搜索时的大多数解决方案返回
std.os.socket
,但是os
软件包不再定义套接字方法。
const std = @import("std");
pub fn main() !void {
const addr = try std.net.Address.parseIp("127.0.0.1", 8080);
const sock_fd = try std.os.socket(std.os.AF.INET, std.os.SOCK.DGRAM, std.os.IPPROTO.UDP);
defer std.os.close(sock_fd);
try std.os.bind(sock_fd, &addr.any, addr.getOsSockLen());
var buf: [1024]u8 = undefined;
const len = try std.os.recv(sock, &buf, 0);
std.debug.print("{s}\n", .{buf[0..len]});
}
Ziggit上找到了答案,在此处将其张贴在此处以获得更好的联系。 thank you thank youdimdim用于解决方案。
const std = @import("std");
pub fn main() !void {
const sock = try std.posix.socket(std.posix.AF.INET, std.posix.SOCK.DGRAM, std.posix.IPPROTO.UDP);
defer std.posix.close(sock);
const addr = try std.net.Address.parseIp("127.0.0.1", 55555);
try std.posix.bind(sock, &addr.any, addr.getOsSockLen());
var buf: [1024]u8 = undefined;
const len = try std.posix.recvfrom(sock, &buf, 0, null, null);
std.debug.print("recv: {s}\n", .{buf[0..len]});
}
pub fn main()!void {
const addr = try std.net.address.parseip(“ 127.0.0.1”,8080);
const sock_fd = try std.os.socket(std.os.af.inet,std.os.sock.dgram,std.os.ipproto.udp);
defer std.os.close(sock_fd);try std.os.bind(sock_fd, &addr.any, addr.getOsSockLen());
var buf: [1024]u8 = undefined;
const len = try std.os.recv(sock, &buf, 0);
std.debug.print("{s}\n", .{buf[0..len]});