"Michael Rasmussen" <mir@miras.org> wrote in message
news:pan.2005.02.27.18.03.46.415485@miras.org...
> On Sun, 27 Feb 2005 18:33:21 +0100, Mogens Hansen wrote:
>
>>
>> Tag et kig på ACE (
http://www.cs.wustl.edu/~schmidt/ACE.html). Det er et
>> bibliotek der indeholder en masse klasser til netværks- og
> ACE er efter min bedste overbevisning overkill, hvis man blot skal skrive
> simple socket-applikationer,
I forhold til hvad, givet at det gerne både må køre på Linux og Windows ?
ACE kan hentes på et par minutter med en almindelig ADSL forbindelse.
Det tager ca. 5 minutter at builde.
Og et program der henter lidt på
www.dr.dk, kan se sådan ud:
#include <ace/INET_Addr.h>
#include <ace/SOCK_Connector.h>
#include <ace/SOCK_Stream.h>
#include <iostream>
#include <algorithm>
#include <iterator>
#include <cstdlib>
#include <cstring>
int main(int /*argc*/, char* /*argv*/[])
{
using namespace std;
ACE_INET_Addr www_dr_dk_adr(80, "
www.dr.dk");
ACE_SOCK_Stream peer;
ACE_SOCK_Connector connector;
if(connector.connect(peer, www_dr_dk_adr) == -1)
return EXIT_FAILURE;
iovec iov[3];
iov[0].iov_base = "GET ";
iov[1].iov_base = "
www.dr.dk";
iov[2].iov_base = " HTTP/1.0\r\n\r\n";
for(size_t i = 0; sizeof(iov)/sizeof(iov[0]) != i; ++i)
iov[i].iov_len = strlen(iov[i].iov_base);
if(peer.sendv_n(iov, sizeof(iov)/sizeof(iov[0])) == -1)
return EXIT_FAILURE;
char buffer[1024];
for(size_t n; (n = peer.recv(buffer, sizeof(buffer))) > 0; ) {
copy(buffer, buffer + n, ostream_iterator<char>(cout));
}
return peer.close();
}
> deres CORBA implementering er til gengæld
> fremragende.
Ja, den er udemærket - har brugt den i årevis.
Venlig hilsen
Mogens Hansen