45 lines
924 B
Nim
45 lines
924 B
Nim
import enet, strutils
|
|
var
|
|
address: enet.TAddress
|
|
server: PHost
|
|
event: TEvent
|
|
|
|
if enetInit() != 0:
|
|
quit "Could not initialize ENet"
|
|
|
|
address.host = EnetHostAny
|
|
address.port = 8024
|
|
|
|
server = enet.createHost(
|
|
addr address, 32, 2, 0, 0)
|
|
if server == nil:
|
|
quit "Could not create the server!"
|
|
|
|
while server.hostService(addr event, 2500) >= 0:
|
|
case event.kind
|
|
of EvtConnect:
|
|
echo "New client from $1:$2".format(event.peer.address.host, event.peer.address.port)
|
|
|
|
var
|
|
msg = "hello"
|
|
resp = createPacket(cstring(msg), msg.len + 1, FlagReliable)
|
|
|
|
if event.peer.send(0.cuchar, resp) < 0:
|
|
echo "FAILED"
|
|
else:
|
|
echo "Replied"
|
|
of EvtReceive:
|
|
echo "Recvd ($1) $2 ".format(
|
|
event.packet.dataLength,
|
|
event.packet.data)
|
|
|
|
destroy(event.packet)
|
|
|
|
of EvtDisconnect:
|
|
echo "Disconnected"
|
|
event.peer.data = nil
|
|
else:
|
|
discard
|
|
|
|
server.destroy()
|
|
enetDeinit()
|