Forum: PC-Programmierung Client/Server Socket Programmierung Projekte


von Alexandra (Gast)


Lesenswert?

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 :)

von Zeh (Gast)


Lesenswert?

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.

von Alexandra (Gast)


Lesenswert?

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)

von Irgend W. (Firma: egal) (irgendwer)


Lesenswert?

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.

von Zeh (Gast)


Lesenswert?

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.

von Alexandra (Gast)


Lesenswert?

@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!:)

von René (Gast)


Lesenswert?

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.

von Alexandra (Gast)


Lesenswert?

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 :)

von Gerd E. (robberknight)


Lesenswert?

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.

von Pandur S. (jetztnicht)


Lesenswert?

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.

von Tilo R. (joey5337) Benutzerseite


Lesenswert?

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
Noch kein Account? Hier anmelden.