"Anders Lund" <anders@zaim.dk> wrote
> "Anders Lund" <anders@zaim.dk> skrev i en meddelelse
> news:bckr8b$m9p$1@sunsite.dk...
> > Hvis der er en der evt ville poste et kode eksempel ville jeg også blive
> > meget glad, for jeg tror man lær meget af at rode lidt med det selv.
>
> Er der evt andre der har ideer. Jeg tror det andet er en lidt for stor
> mundfuld
Prøv, som socketd bl.a. foreslog, at kigge på på ACE
(
http://www.cs.wustl.edu/~schmidt/ACE.html).
Du vil kunne finde mange eksempler og meget dokumentation der.
Desuden findes der en række bøger, bl.a.
C++ Network Programming, Volume 1
Douglas C. Schmidt, Stephen Huston
ISBN 0-201-60464-7
C++ Network Programming, Volume 2
Douglas C. Schmidt, Stephen Huston
ISBN 0-201-79525-6
Et lille eksempel, der næsten gør hvad du spørger om:
<C++ kode>
#include "ace/INET_Addr.h"
#include "ace/SOCK_Connector.h"
#include "ace/SOCK_Stream.h"
#include <iostream>
#include <iterator>
int main (int argc, char *argv[])
{
using std::cout; using std::endl;
using std::ostream_iterator;
ACE_SOCK_Connector connector;
ACE_SOCK_Stream peer;
ACE_INET_Addr peer_addr;
if(peer_addr.set (80, "ace.ece.uci.edu") == -1)
return 1;
if(connector.connect (peer, peer_addr) == -1)
return 1;
iovec iov[3];
char GET[] = "GET ";
iov[0].iov_base = GET;
iov[0].iov_len = sizeof(GET);
char PATH[] = "index.html";
iov[1].iov_base = PATH;
iov[1].iov_len = sizeof(PATH);
char HTTP[] = " HTTP/1.0\r\n\r\n";
iov[2].iov_base = HTTP;
iov[2].iov_len = sizeof(HTTP);
char buf[32*1024];
if (peer.sendv_n (iov, sizeof(iov)/sizeof(iov[0])) == -1)
return 1;
for (ssize_t n; (n = peer.recv (buf, sizeof buf)) > 0; )
copy(buf+0, buf+n, ostream_iterator<char, char>(cout));
return peer.close();
}
</C++ Kode>
Hvis du ingen erfaring har med netværksprogrammering, så er der nok en del
at lære uanset hvad du gør, for at forstå hvad der sker.
Venlig hilsen
Mogens Hansen