40 lines
841 B
Odin
40 lines
841 B
Odin
package hanabi
|
|
|
|
import "core:fmt"
|
|
import "core:net"
|
|
|
|
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
|
|
}
|
|
|
|
run_server :: proc(players: []net.Endpoint) {
|
|
fmt.println("hello from server")
|
|
for p in players {
|
|
fmt.println(p)
|
|
}
|
|
}
|
|
|