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

List:       boost-users
Subject:    [Boost-users] [asio][iostream] trying to implement nntp-client
From:       Sascha Seewald <vudu () gmx ! net>
Date:       2006-08-07 19:12:37
Message-ID: 44D790A5.40006 () gmx ! net
[Download RAW message or body]

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";

  // 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