/ 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
Sockets for newbies
Fra : Morten Winther


Dato : 19-03-03 22:13

Hej

Jeg er temmelig newbie må jeg hellere starte med at indrømme. Ja, jeg har
faktisk skrevet under 100 linie kode i C og blot prøvet nogle få eksempler
fra en hæfte fra IDG.

Jeg har dog læst i dette forum at man skal passe på, idet mange blander C og
C++, men hvordan spotter man som newbie hvad der er slamkode?

#include <iostream> Dette er C++ right?
#include <iostream.h> Dette er C right?

Er der en online API over hvad der er rigtige C++ header-filer?

Grunden til at jeg vil lære C++ er at jeg gerne vil kunne lave nolge
client/server ting. Jeg har derfor bestilt Accelerated C++ samt en bog om
sockets. Bogen om sockets er dog kun i C. Hvor svært vil det være at omsætte
dette til C++?

Er der stor forskel på sockets i C++ og C?

Jeg kommer fra PHP og har brugt Java i godt et halvt år. Både Java og PHP
har gode API'er online. Hvad bruger i til C++?



--
/ morten

"There are only 10 types of people in the world: Those who understand
binary, and those who don't"



 
 
Morten Winther (19-03-2003)
Kommentar
Fra : Morten Winther


Dato : 19-03-03 22:50

"Morten Winther" <mail@is.invalid> skrev i en meddelelse
news:b5ame3$ddj$1@sunsite.dk...

> Jeg er temmelig newbie må jeg hellere starte med at indrømme. Ja, jeg har
> faktisk skrevet under 100 linie kode i C og blot prøvet nogle få eksempler
> fra en hæfte fra IDG.

Skulle måske lige tilføje at jeg bruger FreeBSD og derfor bruger henholdsvis
g++ og gcc. Så det er altså BSD sockets. Kan forså at windows skiller sig
noget ud.

/ morten



Lasse Westh-Nielsen (20-03-2003)
Kommentar
Fra : Lasse Westh-Nielsen


Dato : 20-03-03 02:27

"Morten Winther" <mail@is.invalid> wrote in message
news:b5ame3$ddj$1@sunsite.dk...

> Jeg kommer fra PHP og har brugt Java i godt et halvt år. Både Java og PHP
> har gode API'er online. Hvad bruger i til C++?

Jeg bruger de her 2 API opslagsværker meget:

http://www.cplusplus.com/ref/

http://www.sgi.com/tech/stl/table_of_contents.html

Mvh Lasse


--
<signature>
Lasse Westh-Nielsen
lasse@daimi.au.dk
</signature>







Morten Boysen (20-03-2003)
Kommentar
Fra : Morten Boysen


Dato : 20-03-03 17:56

"Morten Winther" <mail@is.invalid> skrev i en meddelelse
news:b5ame3$ddj$1@sunsite.dk...
> Jeg har dog læst i dette forum at man skal passe på, idet mange
blander C og
> C++, men hvordan spotter man som newbie hvad der er slamkode?

Det er *meget* svært.

> #include <iostream> Dette er C++ right?

Jep.

> #include <iostream.h> Dette er C right?

Nej. Der findes ikke nogen iostream header i C. Det ovenover er
forældet C++. Det har tidligere været rigtig C++, men det er
efterhånden mange år siden.


--
Morten Boysen


Ulrik Jensen (20-03-2003)
Kommentar
Fra : Ulrik Jensen


Dato : 20-03-03 21:21

Hej

"Morten Boysen" <morten.boysen@aub.dk> writes:

> > #include <iostream.h> Dette er C right?
> Nej. Der findes ikke nogen iostream header i C. Det ovenover er
> forældet C++. Det har tidligere været rigtig C++, men det er
> efterhånden mange år siden.

Det er dog stadig den eneste form Borlands gratis compiler vil
acceptere.. i hvert 5.0, mener jeg (kan ikke lige huske hvad jeg har
installeret, og har ikke maskinen i nærheden)

--
Ulrik Jensen
ulrik@qcom.dk - http://www.minefilm.tk
"It's only a movie, and, after all, we're all grossly overpaid."

Ivan Johansen (21-03-2003)
Kommentar
Fra : Ivan Johansen


Dato : 21-03-03 08:04

Ulrik Jensen wrote:
>>>#include <iostream.h> Dette er C right?
>>
>>Nej. Der findes ikke nogen iostream header i C. Det ovenover er
>>forældet C++. Det har tidligere været rigtig C++, men det er
>>efterhånden mange år siden.
>
>
> Det er dog stadig den eneste form Borlands gratis compiler vil
> acceptere.. i hvert 5.0, mener jeg (kan ikke lige huske hvad jeg har
> installeret, og har ikke maskinen i nærheden)

Borlands gratis compiler (5.5.1) accepterer <iostream> uden problemer.
Men det er vist rigtigt at der kan være nogle problemer med 5.0, men den
er vist også 8 år gammel.

Ivan Johansen



Socketd (21-03-2003)
Kommentar
Fra : Socketd


Dato : 21-03-03 00:16

On Wed, 19 Mar 2003 22:13:09 +0100, Morten Winther wrote:

> Grunden til at jeg vil lære C++ er at jeg gerne vil kunne lave nolge
> client/server ting. Jeg har derfor bestilt Accelerated C++ samt en bog
> om sockets. Bogen om sockets er dog kun i C. Hvor svært vil det være at
> omsætte dette til C++?

I standard C++ er der ikke et netværksprogrammerings API, så du skal
benytte FreeBSD's socket API. Til dette kan jeg anbefale følgende bog:
"Internetworking with TCP/IP - Volume III Client - Server programming
and applications BSD socket version with ANSI C" Af Douglas E. Comer and
David L. Stevens

> Er der stor forskel på sockets i C++ og C?

Jeg ved ikke om der er et standard socket/netværk API i C, men I dit
tilfælde er det ens eftersom C/C++ bruger BSD API'et.

> Jeg kommer fra PHP og har brugt Java i godt et halvt år. Både Java og
> PHP har gode API'er online. Hvad bruger i til C++?

Håber jeg har givet svar på det. Hvis du vil kan du evt bruge ACE, men
jeg ved ikke om det kan køre på freebsd.

mvh
socketd

Morten Winther (21-03-2003)
Kommentar
Fra : Morten Winther


Dato : 21-03-03 15:29


"Socketd" <db@traceroute.dk> skrev i en meddelelse
news:pan.2003.03.20.23.15.59.985795.464@traceroute.dk...

> Håber jeg har givet svar på det. Hvis du vil kan du evt bruge ACE, men
> jeg ved ikke om det kan køre på freebsd.

Tak til alle. Nu må jeg hellere se at få fingerne ned i det ...

/ morten



Morten Boysen (21-03-2003)
Kommentar
Fra : Morten Boysen


Dato : 21-03-03 18:16

"Socketd" <db@traceroute.dk> skrev i en meddelelse
news:pan.2003.03.20.23.15.59.985795.464@traceroute.dk...
> Jeg ved ikke om der er et standard socket/netværk API i C, men I dit
> tilfælde er det ens eftersom C/C++ bruger BSD API'et.

Sockets er ovehovedet ikke en del af hverken C eller C++ standarden.


--
Morten Boysen


Michal (21-03-2003)
Kommentar
Fra : Michal


Dato : 21-03-03 22:12

In news:b5fh8i$gne$1@sunsite.dk,
Morten Boysen <morten.boysen@aub.dk> wrote:

> "Socketd" <db@traceroute.dk> skrev i en meddelelse
> news:pan.2003.03.20.23.15.59.985795.464@traceroute.dk...
>> Jeg ved ikke om der er et standard socket/netværk API i C, men I dit
>> tilfælde er det ens eftersom C/C++ bruger BSD API'et.
>
> Sockets er ovehovedet ikke en del af hverken C eller C++ standarden.

Og heller ikke processes eller threads for den sags skyld :)

Alt sådan noget skal vel slås op i ens OS dokumentation... eller passende
bog om emnet...?

--
Michal
[ echo "\$0&\$0" > _; chmod +x _; ./_ ]



Mogens Hansen (21-03-2003)
Kommentar
Fra : Mogens Hansen


Dato : 21-03-03 22:58


"Morten Winther" <mail@is.invalid> wrote

[8<8<8<]
> Bogen om sockets er dog kun i C. Hvor svært vil det være at omsætte
> dette til C++?
>
> Er der stor forskel på sockets i C++ og C?

Da socket hverken er en del af Standard C eller Standard C++ skal man bruge
et API (Application Programming Interface) som kan tilgåes fra enten C eller
C++.
Et C baseret interface vil typisk kunne anvendes direkte fra C++ - så på den
led er der ingen forskel.
Der findes også en række C++ klasse biblioteker til netværksprogrammering.
De kan naturligvis ikke bruges fra C - så på den led er der stor forskel.
Et meget udbredt er C++ klassebibliotek til netværksprogrammering er ACE
(Adaptive Communication Environment) som findes til et utal af platforme og
C++ compilere - også FreeBSD.
Ved at bruge den slags biblioteker bliver din kode uafhængig af hvilken
platform det skal køre på.
Du kan se mere om ACE på http://siesta.cs.wustl.edu/~schmidt/, hvor source
koden, en masse eksempler og dokumentation findes.

Desuden findes bøgerne
C++ Network Programming, Volume 1
Douglas C. Schmit, Stephen D. Huston
ISBN 0-201-60464-7
og
C++ Network Programming, Volume 2
Douglas C. Schmit, Stephen D. Huston
ISBN 0-201-79525-6
som behandler netværksprogrammering i C++ med ACE. Der står mange praktiske
overvejelser om hvordan man skriver servere programmer. Mange af
overvejelserne er egentligt ikke specifikke for ACE, men gælder for generelt
for multitråede distribuerede løsninger.
Bøgerne er iøvrigt fra samme serie som Accelerated C++.

Venlig hilsen

Mogens Hansen





Michal (22-03-2003)
Kommentar
Fra : Michal


Dato : 22-03-03 09:59

In news:b5g1kd$1l3s$1@news.cybercity.dk,
Mogens Hansen <mogens_h@dk-online.dk> wrote:

> som behandler netværksprogrammering i C++ med ACE. Der står mange
> praktiske overvejelser om hvordan man skriver servere programmer.
> Mange af overvejelserne er egentligt ikke specifikke for ACE, men
> gælder for generelt for multitråede distribuerede løsninger.

Står der så også noget om processer eller kun tråde?

Og ca. hvor stor en procentdel omhandler specifikke ACE ting?
Og hvormeget generel network programmering i en multiprocess/multithread
environment?


> Bøgerne er iøvrigt fra samme serie som Accelerated C++.

Om hastighedsoptimering af C++ vel?

--
Michal
[ echo "\$0&\$0" > _; chmod +x _; ./_ ]



Mogens Hansen (22-03-2003)
Kommentar
Fra : Mogens Hansen


Dato : 22-03-03 14:48


"Michal" <nonexistant@fakedomain.INVALID> wrote

[8<8<8<]
> Står der så også noget om processer eller kun tråde?

Ja, der står både noget om processer og tråde. Netværksprogrammering er jo
meget andet end at sende et telegram fra en computer til en anden.
Hele Part II i Volume 1 drejer sig om "Concurrent Object-Oriented Network
Programming". Totalt ca. 120 sider.
Kapitel 5 hedder "Concurrent Design Dimensions", bl.a. med kapitler 5.1
"Processes versus Threads" og kapitel 5.2 "Process/Thread Spawning
Strategies".

De fulde indholdfortegnelser kan ses på:

http://www.awprofessional.com/isapi/product_id~{1E34F487-4285-4C05-9BF9-B551
95F3C83F}/catalog/product.asp

http://www.awprofessional.com/isapi/product_id~{1E34F487-4285-4C05-9BF9-B551
95F3C83F}/catalog/product.asp

Måske er det også rimeligt på dette sted at henvise til bogen
Pattern-Oriented Software Architecture: Patterns for Concurrent and
Networked Object, Volume 2
Douglas C. Schmidt, Michael Stal, Hans Rohnert, Frank Bushmann
ISBN: 0-471-60695-2
som stammer fra samme miljø: ACE, Douglas C. Schmidt, Siemens, Frank
Bushmann.
Den omhandler i stor stil også dette område.

Det er også værd at bemærke at tilføjelserne i Java JDK 1.4 til non-blocking
kommunikation (NIO) i høj grad stammer direkte fra ACE.
Jeg så det gennemgået af Doug Lea ved JAOO 2001 hvor jeg under
præsentationen fulgte med i de tilsvarende ACE eksempler. Det var så ens at
det ikke kan være tilfældigt. (Jeg kan desværre ikke finde referencer til
det lige på stående fod - JAOO website (www.jaoo.dk) er nede).
Som sådan er beskrivelserne ikke blot begrænset til C++ og ACE.

> Og ca. hvor stor en procentdel omhandler specifikke ACE ting?

De konkrete eksemper benytter ACE hele vejen igennem.

> Og hvormeget generel network programmering i en multiprocess/multithread
> environment?

En meget stor del er generel viden og erfaring om netværks-, multiprocess-
og multitråds-programmering.

> > Bøgerne er iøvrigt fra samme serie som Accelerated C++.
>
> Om hastighedsoptimering af C++ vel?

Jeg forstår ikke hvad dit spørgsmål går på.
Hvad har "Accelered C++" med hastighedsoptimering at gøre ? Altså bortset
fra optimering af indlæringshastighed
Jeg opfatter ikke at bøgerne i Addison-Wesley serien "C++ In-Depth" går på
hastighedsoptimering.
De sigter på at være relativt korte bøger, der behandler et specifikt emne i
dybden. De er skrevet af nogle af de mest ansete eksperter på de respektive
områder.

Venlig hilsen

Mogens Hansen



Michal (22-03-2003)
Kommentar
Fra : Michal


Dato : 22-03-03 15:41

In news:b5hpat$16qp$1@news.cybercity.dk,
Mogens Hansen <mogens_h@dk-online.dk> wrote:

>> Står der så også noget om processer eller kun tråde?
>
> Ja, der står både noget om processer og tråde. Netværksprogrammering
> er jo meget andet end at sende et telegram fra en computer til en
> anden.
> Hele Part II i Volume 1 drejer sig om "Concurrent Object-Oriented
> Network Programming". Totalt ca. 120 sider.
> Kapitel 5 hedder "Concurrent Design Dimensions", bl.a. med kapitler
> 5.1 "Processes versus Threads" og kapitel 5.2 "Process/Thread Spawning
> Strategies".

Lyder rart :)


>>> Bøgerne er iøvrigt fra samme serie som Accelerated C++.
>>
>> Om hastighedsoptimering af C++ vel?
>
> Jeg forstår ikke hvad dit spørgsmål går på.
> Hvad har "Accelered C++" med hastighedsoptimering at gøre ? Altså
> bortset fra optimering af indlæringshastighed

Jeg mente nu optimering af ens kode til bedre eksekvering... det er hvad jeg
forstår ved accelereret C++ :)

Vidste ikke det var ment som en accelereret indlæringsprocess...

--
Michal
[ echo "\$0&\$0" > _; chmod +x _; ./_ ]



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