/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Netværks programmering
Fra : Anders Lund


Dato : 16-06-03 17:30

Jeg har et "halvt for sjov" - projekt, hvor jeg fra et c++ program skal
sende en string på max ca 300tegn, til en webserver. Det jeg har tænkt mig
er, at programmere en socket klient der åbner port 80 og sender stringen så
den på serveren kan hentes fra asp som fx POST - data (den slaks man normalt
bruger til form felter).

Jeg har bare ingen erfaring med netværksprogrammering, så hvis en af jer evt
har et linkt til en (dansk/engelsk) novice-tutorail i netværksprogrammering
i c++, ville jeg blive glad.
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.

Mvh
Anders Lund
ps: Kommentare til fremgangmåden modtages også



 
 
Socketd (16-06-2003)
Kommentar
Fra : Socketd


Dato : 16-06-03 18:39

On Mon, 16 Jun 2003 18:30:16 +0200
"Anders Lund" <anders@zaim.dk> wrote:

> Jeg har et "halvt for sjov" - projekt, hvor jeg fra et c++ program
> skal sende en string på max ca 300tegn, til en webserver. Det jeg har
> tænkt mig er, at programmere en socket klient der åbner port 80 og
> sender stringen så den på serveren kan hentes fra asp som fx POST -
> data (den slaks man normalt bruger til form felter).
>
> Jeg har bare ingen erfaring med netværksprogrammering, så hvis en af
> jer evt har et linkt til en (dansk/engelsk) novice-tutorail i
> netværksprogrammering i c++, ville jeg blive glad.
> 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.

www.wxwindows.org

mvh
socketd

Anders Lund (16-06-2003)
Kommentar
Fra : Anders Lund


Dato : 16-06-03 19:19

"Socketd" <db@traceroute.dk> skrev i en meddelelse
news:20030616193842.59895cf6.db@traceroute.dk...
On Mon, 16 Jun 2003 18:30:16 +0200
"Anders Lund" <anders@zaim.dk> wrote:

> Jeg har et "halvt for sjov" - projekt, hvor jeg fra et c++ program
> skal sende en string på max ca 300tegn, til en webserver. Det jeg har
> tænkt mig er, at programmere en socket klient der åbner port 80 og
> sender stringen så den på serveren kan hentes fra asp som fx POST -
> data (den slaks man normalt bruger til form felter).
>
> Jeg har bare ingen erfaring med netværksprogrammering, så hvis en af
> jer evt har et linkt til en (dansk/engelsk) novice-tutorail i
> netværksprogrammering i c++, ville jeg blive glad.
> 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.

www.wxwindows.org

Den lyder lidt omfattende at sætte sig ind i, især når projektet slet ikke
behøver at være portable.
Jeg bruger Dev-c++ som benytter sig af minGW. Findes der ikke i det libary
der følger med den, nogle muligheder for socket programmering.


Mvh
Anders Lund



Socketd (16-06-2003)
Kommentar
Fra : Socketd


Dato : 16-06-03 19:40

On Mon, 16 Jun 2003 20:18:52 +0200
"Anders Lund" <anders@zaim.dk> wrote:

> www.wxwindows.org
>
> Den lyder lidt omfattende at sætte sig ind i, især når projektet slet
> ikke behøver at være portable.
> Jeg bruger Dev-c++ som benytter sig af minGW. Findes der ikke i det
> libary der følger med den, nogle muligheder for socket programmering.

Ah, udfra din første mail kunne jeg jo ikke vide hvilket OS du brugte,
det kan jeg egentlig stadig ikke da både mingw og Dev-C++ både kan køre
på Windows og Unix. Anyway så bliver resultatet det samme, nemlig at
anbefale et gratis og cross platform library. Her kan du vælge mellem:
www.wxwindows.org
http://ptypes.sourceforge.net/ og
http://www.cs.wustl.edu/~schmidt/ACE.html

Jeg skrev www.wxwindows.org fordi det var den jeg vil anbefale.
Ellers så søg på google efter winsock, hvis det er windows du bruger.

mvh
socketd

Anders Lund (16-06-2003)
Kommentar
Fra : Anders Lund


Dato : 16-06-03 22:00

"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

Mvh
Anders Lund



Jakop Nielsen (17-06-2003)
Kommentar
Fra : Jakop Nielsen


Dato : 17-06-03 08:08

> Er der evt andre der har ideer. Jeg tror det andet er en lidt for stor
mundfuld

Hvis du ikke vil lære et api, som de nævnte, så kan du overveje at bruge
borland c++ builder og anvende en tclientsocket. Der skal du ikke gøre andet
end sætte ip og port og so forbinde den til en server og sende din besked.



Mogens Hansen (17-06-2003)
Kommentar
Fra : Mogens Hansen


Dato : 17-06-03 21:24


"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



Anders Lund (17-06-2003)
Kommentar
Fra : Anders Lund


Dato : 17-06-03 21:21

"Anders Lund" <anders@zaim.dk> skrev i en meddelelse
news:bckr8b$m9p$1@sunsite.dk...
> har et linkt til en (dansk/engelsk) novice-tutorail i
netværksprogrammering
> i c++, ville jeg blive glad.

Jeg har fundet denne artikel:
http://www.hal-pc.org/~johnnie2/winsock.html

Men når jeg compiler koden, får jeg følgende fejl fra minGW (Dev-c++ som
kører på min windows xp maskine ):
d:\mine-projekter\cpp\socket\jsocketfiles\connector\main.o(.text+0x53):main.
cpp: undefined reference to `WSAStartup@8'

Samt en masse ligende.

Det kunne ligne at jeg skulle linke til et libery (wsock32.lib), men
hvordan?

Mvh
Anders Lund



J. Heder (17-06-2003)
Kommentar
Fra : J. Heder


Dato : 17-06-03 21:40


----- Original Message -----
From: "Anders Lund" <anders@zaim.dk>
Newsgroups: dk.edb.programmering.c
Sent: Tuesday, June 17, 2003 10:20 PM
Subject: Re: Netværks programmering


> "Anders Lund" <anders@zaim.dk> skrev i en meddelelse
> news:bckr8b$m9p$1@sunsite.dk...
> > har et linkt til en (dansk/engelsk) novice-tutorail i
> netværksprogrammering
> > i c++, ville jeg blive glad.
>
> Jeg har fundet denne artikel:
> http://www.hal-pc.org/~johnnie2/winsock.html
>
> Men når jeg compiler koden, får jeg følgende fejl fra minGW (Dev-c++ som
> kører på min windows xp maskine ):
>
d:\mine-projekter\cpp\socket\jsocketfiles\connector\main.o(.text+0x53):main.
> cpp: undefined reference to `WSAStartup@8'
>
> Samt en masse ligende.
>
> Det kunne ligne at jeg skulle linke til et libery (wsock32.lib), men
> hvordan?
>
> Mvh
> Anders Lund
>
>

Nu er det et stykke tid siden jeg var inde i 'gcc-mingw' verdenen, men
du kunne jo prøve at linke med wsock32 (alias libwsock32) når du compiler
....
dvs. added "-lwsock32" til kompiler linen.

/Jacob



Anders Lund (17-06-2003)
Kommentar
Fra : Anders Lund


Dato : 17-06-03 22:08

"J. Heder" <jacobheder@mail1.stofanet.dk> skrev i en meddelelse
news:3eef7d85$0$7077$ba624c82@nntp04.dk.telia.net...

> Nu er det et stykke tid siden jeg var inde i 'gcc-mingw' verdenen, men
> du kunne jo prøve at linke med wsock32 (alias libwsock32) når du compiler
> ...
> dvs. added "-lwsock32" til kompiler linen.

Måske jeg har taget min mund for fuld. Den siger:
g++: -lwsock32: linker input file unused since linking not done

Mvh
Anders Lund



Bertel Brander (17-06-2003)
Kommentar
Fra : Bertel Brander


Dato : 17-06-03 22:18

Anders Lund wrote:
> "J. Heder" <jacobheder@mail1.stofanet.dk> skrev i en meddelelse
> news:3eef7d85$0$7077$ba624c82@nntp04.dk.telia.net...
>
>
>>Nu er det et stykke tid siden jeg var inde i 'gcc-mingw' verdenen, men
>>du kunne jo prøve at linke med wsock32 (alias libwsock32) når du compiler
>>...
>>dvs. added "-lwsock32" til kompiler linen.
>
>
> Måske jeg har taget min mund for fuld. Den siger:
> g++: -lwsock32: linker input file unused since linking not done

-lwsock32 skal tilføjes til link og ikke til kompilering

Menu -> Project -> Project Options -> Parametes -> Linker


/b


Anders Lund (17-06-2003)
Kommentar
Fra : Anders Lund


Dato : 17-06-03 23:09

"Bertel Brander" <bertel@post4.tele.dk> skrev i en meddelelse
news:3eef8564$0$24666$edfadb0f@dread14.news.tele.dk...
> -lwsock32 skal tilføjes til link og ikke til kompilering
>
> Menu -> Project -> Project Options -> Parametes -> Linker

tak



guppy (17-06-2003)
Kommentar
Fra : guppy


Dato : 17-06-03 23:08


"Anders Lund" <anders@zaim.dk> wrote in message
news:bcnvsl$nst$1@sunsite.dk...
> "J. Heder" <jacobheder@mail1.stofanet.dk> skrev i en meddelelse
> news:3eef7d85$0$7077$ba624c82@nntp04.dk.telia.net...
> > dvs. added "-lwsock32" til kompiler linen.
>
> Måske jeg har taget min mund for fuld. Den siger:
> g++: -lwsock32: linker input file unused since linking not done

lyder lidt skummelt.. prøv at hente de nyest opdateringer til Dev-C++ (med
vRoach)


any ways for at svare på det oprindelige spørgsmål så er det her et godt
sted at få information on netværks programmering ( winsock )

http://tangentsoft.net/wskfaq/





Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste