Merge pull request 'complete the sample example for tcp/ip using zig.' (#2) from tcp_demo into main

Reviewed-on: http://198.12.122.141:3121/zig/nation/pulls/2
This commit is contained in:
ShawnJones 2024-07-03 14:17:33 +08:00
commit fc41b6d8d2
2 changed files with 18 additions and 4 deletions

View File

@ -17,7 +17,8 @@ pub fn main() !void {
const allocator = gpa.allocator();
const stream = try net.tcpConnectToHost(allocator, ip, port);
_ = try stream.writeAll("hello");
const s = "Hello, World!";
_ = try stream.writeAll(s);
defer {
stream.close();
}

View File

@ -6,6 +6,11 @@ pub fn main() !void {
const ip = "127.0.0.1";
const port: u16 = 10010;
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
defer {
_ = gpa.deinit();
}
// const allocator = gpa.allocator();
// listen to local ip:port
const address = try net.Address.parseIp(ip, port);
log.info("server listen to {s}:{d}", .{ ip, port });
@ -16,8 +21,16 @@ pub fn main() !void {
while (true) {
// accept from client
const client = try server.accept();
var buffer: [1024]u8 = undefined;
const len = try client.stream.readAll(buffer[0..]);
log.info("data from client: {s}\n", .{buffer[0..len]});
log.info("has a client connected: {any}", .{client});
defer client.stream.close();
var message: [4]u8 = undefined;
var total_len: usize = 0;
r: while (true) {
const bytesRead = try client.stream.readAll(&message);
if (bytesRead == 0) break :r;
total_len += bytesRead;
std.debug.print("Received: {s}\n", .{message[0..bytesRead]});
}
}
}