Hi! Mir wurde gesagt, dass man hier richtig ist, wenn man Ratschläge rund ums Programmieren sucht. Ich bin eine "fortgeschrittene Anfängerin" und habe neulich ein Video über Socket Programmierung gesehen. Über Weihnachten habe ich viel Zeit und wollte mir hier Inspiration für ein Programmier Projekt holen. Hat hier jemand schon was im Bereich Server/Client Programmierung gemacht und hätte einen Vorschlag für mich? Wahrscheinlich werden das viele jetzt kritisieren, aber ich programmiere hauptsächlich in C. Hab auch wenig Java Kenntnisse aber mein Ziel ist es meine C Kenntnisse zu vertiefen. Icu bin mal gespannt was ihr für interessante Ideen habt :)
Welche Ergebnisse hat denn deine Recherche bisher gezeigt? Welche Projekte hst du gefunden und welche Erkenntnisse hast du daraus gwonnen. Schreibe doch ausführlich dazu, damit man weiss, wo man sinnvoller Weise beginnen soll zu erzählen.
Zeh schrieb: > Welche Projekte hst du gefunden und welche Erkenntnisse hast du daraus > gwonnen. Ich habe zum Beispiel ein paar Sachen zu Chat Server gefunden und vieles aus dem Bereich IOT und Raspberry Pi. Zweiteres finde ich auch interessant aber ich habe keine solche Hardware zuhause (ausser einen PC und ein Laptop)
Alexandra schrieb: > Zeh schrieb: >> Welche Projekte hst du gefunden und welche Erkenntnisse hast du daraus >> gwonnen. > > Ich habe zum Beispiel ein paar Sachen zu Chat Server gefunden und vieles > aus dem Bereich IOT und Raspberry Pi. Zweiteres finde ich auch > interessant aber ich habe keine solche Hardware zuhause (ausser einen PC > und ein Laptop) Versuch doch vielleicht erstmal ein einfaches Datenpaket auf deinem eigenen Rechner zwichen zwei (selbstgeschriebenen) Anwendungen auszutauschen: - https://docs.microsoft.com/de-de/windows/win32/winsock/getting-started-with-winsock - https://riptutorial.com/posix/topic/4706/sockets Ob die beiden Anwendungen auf dem selben Rechner laufen oder eine davon am anderen Ende der Welt steht ist der Software dabei völlig egal, da ändert sich nur die IP und ggf. der Port. Zum Üben ist es aber nicht verkehrt beides direkt unter Kontrolle zu haben. Sowas wie Chat oder die ganzen Spielereien sind dann später Applicationlayer dass oberhalb davon aufsetzt.
Alexandra schrieb: > ... paar Sachen ... gefunden ... Das ist doch schon was. Sinnvoll kannst du nur das programmieren, was du auch auf Hardware testen kannst. Zuerst sieh zu, dass du dir die Grundlagen mit wenig Aufwand erarbeitest. Fang an mit einem Programm, das Client und Server enthält und lass die kommunizieren. Dann teile auf in ein Server Programm und ein Server Programm auf der selben Maschine. Dann verteile das auf PC und Laptop und kommuniziere über das WLAN. Bis dahin fällt dir sicher eine Anwendung ein, die dich interessiert: Austausch von binären Daten, Text, Sprache, Musik, Bilder, ... auch immer. Mit einer zweiten Person kann das dann auch übers Inet laufen.
@Zeh & @irgendwer Vielen Dank, das sind gute Ideen! Wahrscheinlich habe ich etwas zu kompliziert gedacht aber das ist schon ein guter Ansatz für den Anfang. Sobald ich ein paar Ergebnisse erzielt habe, werde ich berichten!:)
Das ist aber hier noch nicht gekommen: http://www.beej.us/guide/bgnet/ So habe ich vor vielen Jahren mich in die Socket-Programmierung eingearbeitet. Wird aber immer noch aktualisiert - inzwischen ist IPv6 mit drin. Kannst das Ganze auch erst mal mit einem Rechner testen (127.0.0.1). Ansonsten ist auch Wireshark zu empfehlen.
René schrieb: > http://www.beej.us/guide/bgnet/ Vielen Dank lieber René! Das scheint ein tolles Tutorial zu sein und der Linux Bezug gefällt mir besonders :)
Meine Empfehlung wäre, Dir ein Projekt zu suchen was Dir vor allem Spaß macht oder im Alltag nützlich ist. Also weniger vom Aspekt Client/Server aus was zu suchen und das Ganze als explizites Lernprojekt anzugehen und dann abzuhaken, sondern so daß da hinterher für Dich ein klarer Nutzen über das Lernen hinaus entsteht. Das ist für die Motivation sehr hilfreich. So daß Du das nicht nach 2 Wochenenden in halbfertigem Zustand aufgibst, sondern Du Spaß dran hast das durchzuziehen, Du es hinterher im Praxiseinsatz siehst und dann evtl. noch bestehende Fehler oder Designschwächen behebst. Gerade der Punkt Überführen in den Praxiseinsatz, Feedback daraus und dann Verbesserung des Codes und evtl. auch des Designs ist etwas bei dem ich denke daß Anfänger daraus viel lernen können.
Bevor wir beginnen. Der Server wartet bis er angefragt wird etwas zu machen. Er macht von alleine gar nichts. Der Server Socket ist also immer im Receive modus. Waehrend der Client etwas will und den Server dafuer anfragt. Der Client Socket is also im Transmit modus. Der Client socher, beim Benutzer kommt immer ins Internet, waehrend der Server nicht einfach etwas senden kann, er kommt nicht durch durch Firewall des Clients.
Ich würde dir empfehlen, nicht mit einem binären Protokoll anzufangen, sondern mit einem Kommandozeilenorientierten Klartext-Protokoll. Da brauchst du für den Anfang keinen Client programmieren sondern kannst den mit telnet ansprechen und ausprobieren.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.