Socket programmieren mit c :womit soll ich denn anfangen?
-
Hallo,
kennt jemand eine Webseite oder ein Buch auf deutsch wo man Socket programmierung mit c für Mikrocontroller lernen kann?
ich bin da ein richtiger Anfänger
.Vielen Dank
-
gibt's alles im internet, z.b. das --> http://www2.fh-fulda.de/~gross/parallel.bachelor/kap4.pdf
für welchen microcontroller denn?
auf µC's sind socket-apis eher selten anzutreffen.

-
danke erstmal für deine Interesse,
das ist ein Entwicklungsboard von Atmel AT91sam7x-EK, er hat eine Ethernet-Schnittstelle und den will ich programmieren (wenn ich das erstmal gelernt habe
) hast vielleicht noch weitere infos? :
-
Hossam schrieb:
danke erstmal für deine Interesse,
das ist ein Entwicklungsboard von Atmel AT91sam7x-EK, er hat eine Ethernet-Schnittstelle und den will ich programmieren (wenn ich das erstmal gelernt habe
) hast vielleicht noch weitere infos? :no problem

sockets sind die benutzerschnittstelle zu hi-level protokollen, normalerweise nicht direkt zum ethernet. wenn du das board in's netz hängen willst, brauchst du noch die ganzen protkollstacks (ARP,IP, UDP und/oder TCP)
z.b. das hier: http://www.sics.se/~adam/uip/

-
das heisst wenn ich das so richtig verstanden habe: die sockets werden mit dieser protokoll (uIP) übertragen,oder?
-
Dieser Thread wurde von Moderator/in Tim aus dem Forum ANSI C in das Forum Rund um die Programmierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Hossam schrieb:
das heisst wenn ich das so richtig verstanden habe: die sockets werden mit dieser protokoll (uIP) übertragen,oder?
äääh nö

sockets sind sowas wie virtuelle kommunikationskanäle (socket kommt aus dem englischen und heisst etwa 'steckdose', 'buchse' etc.). ein programm kann sich z.b. über die socket-api einen socket besorgen und dann seinen netzwerkverkehr darüber abwickeln, also verbindung aufbauen, daten reinschieben und welche rausholen usw.
die sockets entkoppeln das programm von der komplexität der darunterliegenden software, netzwerkprotokollen und treibern. die protokolle (wie TCP z.b.) definieren wie eine verbindung abzulaufen hat und wie die daten aussehen usw. erst wenn alle teilnehmer das gleiche protokoll verwenden, können daten erfolgreich ausgetauscht werden.
...und wenn du nur 'nen nackten ethernet controller hast, dann brauchste eben treiber und protokoll-software, damit sich dein board mit z.b. deinem PC oder dem internet unterhalten kann.

-
Wenn du vorhast, dich mit dem Thema auseinanderzusetzen, wirf mal einen Blick hier rein...
Grüße,
Martin
-
Undertaker schrieb:
Hossam schrieb:
das heisst wenn ich das so richtig verstanden habe: die sockets werden mit dieser protokoll (uIP) übertragen,oder?
äääh nö

sockets sind sowas wie virtuelle kommunikationskanäle (socket kommt aus dem englischen und heisst etwa 'steckdose', 'buchse' etc.). ein programm kann sich z.b. über die socket-api einen socket besorgen und dann seinen netzwerkverkehr darüber abwickeln, also verbindung aufbauen, daten reinschieben und welche rausholen usw.
die sockets entkoppeln das programm von der komplexität der darunterliegenden software, netzwerkprotokollen und treibern. die protokolle (wie TCP z.b.) definieren wie eine verbindung abzulaufen hat und wie die daten aussehen usw. erst wenn alle teilnehmer das gleiche protokoll verwenden, können daten erfolgreich ausgetauscht werden.
...und wenn du nur 'nen nackten ethernet controller hast, dann brauchste eben treiber und protokoll-software, damit sich dein board mit z.b. deinem PC oder dem internet unterhalten kann.

vielen Dank

ich wäre für weitere Infos, Infos-ressourcen
... immer dankbar 
-
JimmydaMage schrieb:
Wenn du vorhast, dich mit dem Thema auseinanderzusetzen, wirf mal einen Blick hier rein...
Grüße,
Martin
das sieht sehr interessant aus,
danke schön
und wie gesagt für mehr Infos wäre ich immer dankbar
-
portierung von uIP auf ein AT91SAM7 basiertes entwicklungsboard:
--> http://www.freertos.org/portsam7xiar.html
davon könntest du dir etwas abgucken...

-
Undertaker schrieb:
portierung von uIP auf ein AT91SAM7 basiertes entwicklungsboard:
--> http://www.freertos.org/portsam7xiar.html
davon könntest du dir etwas abgucken...

das ist hervorragend danke!
ich habe aber eine Frage um ein Überblick zu haben
: ich will jetzt ein Programm schreiben,das Übertragung von Signale von PC zu Mikrocontroller und umgekehrt per Ethernet ermöglicht, womit soll ich denn anfangen? soll ich erstmal TCP/IP- und dann Socket-Programm schreiben oder wie? 
-
Hossam schrieb:
womit soll ich denn anfangen? soll ich erstmal TCP/IP- und dann Socket-Programm schreiben oder wie?
als erstes würde ich mal den ethernet-treiber (z.b. aus dem source da oben) auf deinem board in betrieb nehmen. dann verbindest du dein board mit dem PC und testest erstmal, ob du was senden und empfangen kannst (ethernet frames, zielgerichtet, broadcasts etc).
ob das senden funktioniert, kannst du z.b. damit testen: http://www.wireshark.org/
für den empfang könntest du z.b. mit dem PC 'ping' für eine nicht existierend IP-adresse aufrufen, dann sollte dein board ARP frames empfangen.
wenn das funzt, kannst du das uIP anflanschen und damit etwas testen (verbindungen aufbauen usw.)
eine einfache socket-schnittstelle gibt's für uIP ja schon: http://www.sics.se/~adam/uip/uip-1.0-refman/a00158.html
falls dir irgendwelche grundlagen zu den protokollen fehlen:
http://www.faqs.org/rfcs/rfc793.html
http://www.faqs.org/rfcs/rfc791.html
http://www.faqs.org/rfcs/rfc768.html
http://en.wikipedia.org/wiki/Address_Resolution_Protocol
viel erfolg!
-
Undertaker schrieb:
Hossam schrieb:
womit soll ich denn anfangen? soll ich erstmal TCP/IP- und dann Socket-Programm schreiben oder wie?
als erstes würde ich mal den ethernet-treiber (z.b. aus dem source da oben) auf deinem board in betrieb nehmen. dann verbindest du dein board mit dem PC und testest erstmal, ob du was senden und empfangen kannst (ethernet frames, zielgerichtet, broadcasts etc).
ob das senden funktioniert, kannst du z.b. damit testen: http://www.wireshark.org/
für den empfang könntest du z.b. mit dem PC 'ping' für eine nicht existierend IP-adresse aufrufen, dann sollte dein board ARP frames empfangen.
wenn das funzt, kannst du das uIP anflanschen und damit etwas testen (verbindungen aufbauen usw.)
eine einfache socket-schnittstelle gibt's für uIP ja schon: http://www.sics.se/~adam/uip/uip-1.0-refman/a00158.html
falls dir irgendwelche grundlagen zu den protokollen fehlen:
http://www.faqs.org/rfcs/rfc793.html
http://www.faqs.org/rfcs/rfc791.html
http://www.faqs.org/rfcs/rfc768.html
http://www.faqs.org/rfcs/rfc826.html
viel erfolg!
Wunderbar!
gibt`s sowas aber nicht auch auf Deutsch
!
-
Hossam schrieb:
gibt`s sowas aber nicht auch auf Deutsch
!versuch's bei wickipädia

oder hier: http://www.rvs.uni-bielefeld.de/~heiko/tcpip/tcpip.html
-
Undertaker schrieb:
Hossam schrieb:
gibt`s sowas aber nicht auch auf Deutsch
!versuch's bei wickipädia

oder hier: http://www.rvs.uni-bielefeld.de/~heiko/tcpip/tcpip.htmles finde es super, wie du dich Bemühst, um meine Fragen zu beantworten, Respekt!
Vielen Dank
-
Hossam schrieb:
es finde es super, wie du dich Bemühst, um meine Fragen zu beantworten, Respekt!
Vielen Dank
gern geschehen, aber das ist doch noch gar nichts.
guck' dir mal CStoll an (der ist für C u.ä. zuständig). der hat schon 100ten von usern geholfen...

-
Undertaker schrieb:
Hossam schrieb:
es finde es super, wie du dich Bemühst, um meine Fragen zu beantworten, Respekt!
Vielen Dank
gern geschehen, aber das ist doch noch gar nichts.
guck' dir mal CStoll an (der ist für C u.ä. zuständig). der hat schon 100ten von usern geholfen...

wo bleibt er denn..
