diff --git a/src/client.odin b/src/client.odin new file mode 100644 index 0000000..740e0bb --- /dev/null +++ b/src/client.odin @@ -0,0 +1,9 @@ +package hanabi + +import "core:net" +import "core:os" + +main :: proc() { + sock, dial_err := net.dial_tcp(os.args[1]) +} + diff --git a/src/main.odin b/src/game.odin similarity index 58% rename from src/main.odin rename to src/game.odin index eed22be..8252a98 100644 --- a/src/main.odin +++ b/src/game.odin @@ -2,8 +2,6 @@ package hanabi import "core:fmt" import "core:math/rand" -import "core:net" -import "core:os" COLORS :: enum { RED, @@ -80,42 +78,3 @@ print_game :: proc(s: Game) { // fmt.println(len(s.deck)) } -Comm_World :: struct { - sockets: [dynamic]net.TCP_Socket, -} - -create_socket :: proc(addr_str: string) -> (net.TCP_Socket, bool) { - addr, endpoint_ok := net.parse_endpoint(addr_str) - if !endpoint_ok { - fmt.eprintln("failed to parse endpoint") - return 0, false - } - sock, dial_error := net.listen_tcp(addr) - if dial_error != nil { - fmt.eprintln(addr_str, dial_error) - return 0, false - } - return sock, true -} - -create_comm_world :: proc(addresses: []string) -> (comm: Comm_World) { - for addr_str in addresses { - sock, ok := create_socket(addr_str) - if !ok do panic(fmt.tprintfln("%s: failed to create socket", addr_str)) - append(&comm.sockets, sock) - } - return -} - -main :: proc() { - game := create_game(8, 3, 3) - print_game(game) - - if len(os.args) > 1 { - comm := create_comm_world(os.args[1:]) - fmt.println(comm.sockets) - } else { - fmt.eprintln("usage: [p3] [p4] [p5]") - } -} - diff --git a/src/server.odin b/src/server.odin new file mode 100644 index 0000000..41d1c09 --- /dev/null +++ b/src/server.odin @@ -0,0 +1,45 @@ +package hanabi + +import "core:fmt" +import "core:net" +import "core:os" + +Comm_World :: struct { + sockets: [dynamic]net.TCP_Socket, +} + +create_socket :: proc(addr_str: string) -> (net.TCP_Socket, bool) { + addr, endpoint_ok := net.parse_endpoint(addr_str) + if !endpoint_ok { + fmt.eprintln("failed to parse endpoint") + return 0, false + } + sock, dial_error := net.listen_tcp(addr) + if dial_error != nil { + fmt.eprintln(addr_str, dial_error) + return 0, false + } + return sock, true +} + +create_comm_world :: proc(addresses: []string) -> (comm: Comm_World) { + for addr_str in addresses { + sock, ok := create_socket(addr_str) + if !ok do panic(fmt.tprintfln("%s: failed to create socket", addr_str)) + append(&comm.sockets, sock) + } + return +} + +main :: proc() { + game := create_game(8, 3, 3) + print_game(game) + + if len(os.args) > 1 { + comm := create_comm_world(os.args[1:]) + fmt.println(comm.sockets) + } else { + fmt.eprintln("usage: [p3] [p4] [p5]") + } +} +