> But, if I set the address to 192.168.1.45,
> 
> socket.bindAddr(Port(cfgPort), localhost)

This is the problem, change it to empty string which set it to `ADDR_ANY` in 
order the bound address able to listen to any address e.g.
    
    
    socket.bindAddr(Port cfgPort)
    
    
    Run

Just for completion, this is my code
    
    
    # sender.nim
    import net, strutils
    
    const
      # this is the address in the same network but different machine and ip
      foreignAddr = "192.168.18.62"
      foreignPort = Port 9999
    var socket = newSocket(sockType = SOCK_DGRAM, protocol = IPPROTO_UDP)
    var running = true
    while running:
      let msg = stdin.readLine
      socket.sendTo(foreignAddr, foreignPort, msg & "\c\L")
      if msg.toLowerAscii == "quit":
        running = false
    
    
    Run

and this is the receiver
    
    
    #receiver.nim
    import net, asyncnet, strutils, asyncdispatch
    const withSize = 256 # each datagram size
    var running = true
    var socket = newAsyncSocket(sockType = SOCK_DGRAM, protocol = IPPROTO_UDP)
    socket.bindAddr(port = Port 9999)
    while running:
        let msg = waitfor socket.recvFrom(withSize)
        if msg.data.strip.toLowerAscii == "quit":
            running = false
        echo "message data: ", msg.data
        echo "from addr: ", msg.addres
        echo "with port: ", msg.port.int
    
    
    Run

Reply via email to