|
Boost Users : |
Subject: Re: [Boost-users] What is the effective way to use boost::asio::deadline_timer for udp socket receive_from?
From: TONGARI J (tongari95_at_[hidden])
Date: 2017-04-13 03:06:16
2017-04-13 10:11 GMT+08:00 TONGARI J <tongari95_at_[hidden]>:
> 2017-04-13 9:01 GMT+08:00 jupiter via Boost-users <
> boost-users_at_[hidden]>:
>
>> You are right, I did notice an example code given by
>> http://www.boost.org/doc/libs/1_52_0/doc/html/boost_asio/exa
>> mple/timeouts/blocking_udp_client.cpp where the async_receive and timer
>> are used. I left this out in my original post because I have lots of issues
>> from that example, let me know if you'd like me to have a separate post,
>> here are the problems:
>>
>> (1) That example can only work with an IP address in local machine, if I
>> change to a remote machine IP address, it got an error of "Exception: bind:
>> Cannot assign requested address'.
>>
>> (2) If my server is running at the same local machine with the same port
>> number, it got an error of "Exception: bind: Address already in use".
>>
>> How can test that example? I need to add an async_send and I need to run
>> it with a local server.
>>
>
> Actually the example doesn't seem correct, it uses async_receive w/o connecting
> to a remote endpoint first, while the doc says:
>
> "The async_receive operation can only be used with a connected socket.
> Use the async_receive_from function to receive data on an unconnected
> datagram socket."
>
> Anyway, the listen_endpoint in the example is a local endpoint which is
> bind to the client, this may seem weird as it's actually a server in
> traditional sense.
>
BTW, here's the same example rewritten with co2
<https://github.com/jamboree/co2>+act <https://github.com/jamboree/act>:
https://gist.github.com/jamboree/b0b8a81bb5d3acdca8b2b2557e9b7f1d
...if you're interested in what the code written in stackless coroutine
would like.
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net