Test 1 with non allocated str:
fn runCommandFmt(socket: *std.net.Stream, comptime fmt: []const u8, args: anytype) !void {
try std.fmt.format(socket.writer(), fmt, args);
var buffer: [1024]u8 = undefined;
const reader = socket.reader();
_ = try reader.read(buffer[0..]);
std.debug.print("got: {s}\n", .{buffer[0..]});
}
The server throws an error by receiving corrupted data
Terminal output:
set
ex set
get
error: ConnectionResetByPeer
Total Requests: 2
Elapsed Time: 1 ms
Requests per Second: 2000
Test 2 with allocated str:
fn runCommandFmt(allocator: std.mem.Allocator, socket: *std.net.Stream, comptime fmt: []const u8, args: anytype) !void {
const buf = try std.fmt.allocPrint(allocator, fmt, args);
_ = try socket.writer().write(buf);
var buffer: [1024]u8 = undefined;
const reader = socket.reader();
_ = try reader.read(buffer[0..]);
std.debug.print("got: {s}\n", .{buffer[0..]});
}
It would work properly with no errors