io_mode evented and close server when addr in use
This commit is contained in:
parent
58c46692c6
commit
e7960eba28
1 changed files with 14 additions and 2 deletions
|
@ -1,4 +1,6 @@
|
||||||
const std = @import("std");
|
const std = @import("std");
|
||||||
|
pub const io_mode: std.io.Mode = .evented;
|
||||||
|
|
||||||
const eql = std.mem.eql;
|
const eql = std.mem.eql;
|
||||||
|
|
||||||
const types = @import("types.zig");
|
const types = @import("types.zig");
|
||||||
|
@ -18,17 +20,27 @@ pub const Server = struct {
|
||||||
// Init server
|
// Init server
|
||||||
const server_options: std.net.StreamServer.Options = .{};
|
const server_options: std.net.StreamServer.Options = .{};
|
||||||
var server = std.net.StreamServer.init(server_options);
|
var server = std.net.StreamServer.init(server_options);
|
||||||
defer server.close();
|
//defer server.close();
|
||||||
defer server.deinit();
|
defer server.deinit();
|
||||||
const addr = try std.net.Address.parseIp(ip, port);
|
const addr = try std.net.Address.parseIp(ip, port);
|
||||||
|
|
||||||
try server.listen(addr);
|
while (true) {
|
||||||
|
if (server.listen(addr)) |_| {
|
||||||
|
break;
|
||||||
|
} else |_| {
|
||||||
|
server.close();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Handling connections
|
// Handling connections
|
||||||
while (true) {
|
while (true) {
|
||||||
const conn = if (server.accept()) |conn| conn else |_| continue;
|
const conn = if (server.accept()) |conn| conn else |_| continue;
|
||||||
defer conn.stream.close();
|
defer conn.stream.close();
|
||||||
|
|
||||||
|
// const client_ip = try std.fmt.allocPrint(allocator, "{}", .{conn.address});
|
||||||
|
// std.debug.print("Client-IP:{s}\n", .{client_ip});
|
||||||
|
|
||||||
var buffer = std.ArrayList(u8).init(allocator);
|
var buffer = std.ArrayList(u8).init(allocator);
|
||||||
defer buffer.deinit();
|
defer buffer.deinit();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue