[prev in list] [next in list] [prev in thread] [next in thread] 

List:       boost-users
Subject:    Re: [Boost-users] [asio][iostream] trying to implement nntp-client
From:       Jakub Stachowski <stachowski () hypair ! net>
Date:       2006-08-08 7:01:33
Message-ID: eb9cte$7lu$1 () sea ! gmane ! org
[Download RAW message or body]

Sascha Seewald wrote:

> Hi Boosters,
> 
> I īm playing around with the great boost::asio library but have problems
> using the boost::asio::ip::tcp::iostream.
> 
> I try to implement a very simple nntp-client:
> 
> <code>
> 
> void connect_and_retrieve_list_of_newsgroups()
> {
> 
>   std::string line;
> 
>   // connect to server
>   boost::asio::ip::tcp::iostream    s("news.gmane.org", "nntp");
>       if (!s)
>     return;
> 
>   // read connection ack
>   std::getline(s, line);
> 
>   // log
>   std::cout << line;
> 
>   // check return code here. we assume everything is fine.
>   // ...
> 
>   // send LIST command to request a list of newsgroups (see rfc 977)
>   // the server will respond with one or more lines
>   s << "LIST\r\n";

Try adding s.flush() here.

> 
>   // read response
>   std::getline(s, line);    // <-- waits here 'til server timeout
> 
>   ...
> }
> 
> </code>
> 
> For some reason I don't get a response to the LIST command. After a few
> minutes of waiting the server send a timeout notification. It is like I
> had never sent the request.
> The same code using sockets and asio::write() works ok.
> 
> So my questions are:
> - In what way differ tcp::iostreams sending from asio::write() sending?
> - Do tcp::iostreams append (or convert or drop) any characters of the
> given string before sending?
> - Is there a way to gain direct access to tcp::iostreams underlying
> socket (at least for testing)?
> - What am I doing wrong?
> 
> Any help would be much appreciated!
> 
> Cheers
> Sascha



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic