http://www.pronix.de -> Forum -> Fehlermeldungen und Vorschläge

Fehlermeldungen und Vorschläge

Moderatoren: juergen

Thema: Vorschlag für ein Buch

Vorschlag für ein Buch

Garfield am 25.03.2011 um 18:38

Hallo,
ich bin neu hier bin aber leser von Jürgen Wolf's Büchern u.a "C von A bis Z" & "C/C++ von A bis Z".
Ich finde diese Bücher sehr witzig aber auch lehrreich geschrieben. Grafik: Smilie Zwinker

In den oben genannten Büchern wird das Thema Socket kurz angeschnitten aber auch drauf hingewiesen das dieses Thema sehr umfangreich ist!

Mein Vorschlag ist vllt ein Buch zum Thema Socket und all dessen Funktionen zu schreiben (aber nicht von mir, keine erfahrung drin, will das ja lernen!) wie in der Größenordnung von den Buch "C/C++ von A bis Z"!

Ich denke wenn man ca 1300 Seiten nur über Socket schreibt sollte es jeden nach dem Lesen leicht fallen eigene Anwendungen in der Richtung zu erstellen vllt auch Klassen zu bilden u.s.w.!

LG Garfield


 
http://www.zotteljedi.de/socket-buch/

Mehr als die Manpages zu den jeweiligen Funktionen benötigt man imo nicht.
Sicher, man muss in etwas wissen, welche Funktion grob was macht. Aber das gehört zum Handwerk!

Meine Meinung.

--
To follow the path: look to the master, follow the master, walk with the master, see through the master, become the master.

 
Ok da geb ich dir recht aber wie soll man etwas lernen wenn man nicht weiß ob es Richtig oder Falsch ist?
Wenn ich z.b bei dem Thema Socket bleibe findet man ein Haufen Tuts über einen einfachen TCP-Server/Client wie auch schon u.a im Buch beschrieben.

Jetzt frage ich mich aber wie stellt man das an wenn ein Client Nachrichten empfangen soll ohne das er Blockiert?
Oder wie schreibt man einen Server der nicht blockiert z.b. für ein Spiel? Dort laufen ja noch ganz andere Routienen im hintergrund ab die nicht blockiert werden dürfen wenn man z.b ein Spiele-Server hat dann kümmert er sich auch um die Komplette Spielewelt u.a auch die Simulation einer Bewegung( Position verschieben ) von einen NPC ( kein Spielbarer Charakter ) weil ich kann mir nicht vorstellen wenn kein Spieler auf den Server eingeloggt ist das dann die ganze Spielewelt angehalten wird! Kann mich aber auch Irren!
Zum anderen habe ich auch noch nichts gefunden wie man auf der Clientenseite eine abfrage macht wenn eine neue Nachricht eingetroffen ist z.b.:

// Clientseite
int main(){
//...
   while(...){
       //...
       if(NetGetMessage()){
          //...
          // Ein neues Paket ist angekommen
          //...
       }
   }
//...
}
//...


Weil es heist ja nicht wenn ich eine Nachricht an den Server schicke das ich sofort eine rückantwort bekomme, es kann ja sein das die Anfrage vom Client auf der Serverseite noch andere routinen aufrufen muss vllt Daten aus einer SQL Vergleichen oder so!
Dann würde der Client ja solange Blockieren bis eine Antwort zurückkommt!

Wie man sieht Fragen über Fragen und keiner der Sie beantworten kann oder sogar will!

Versteh mich jetzt nicht falsch aber alles was ich damit sagen möchte ist das Themen angeschitte werden und das nach dem Motto "Jetzt kennt ihr ja die grund Funktionen nun seht selbst zu wie ihr klar kommt"!
Es gibt soviel verschiedene Servertypen, mir ist auch klar das man nicht jeden einzelnen beschreiben oder erklären kann! Wenn man ein einfachen Multichat erstellt der hat doch eigendlich alle grundlegenden Sachen die ein nicht blockierender Server und Client benötigt oder lieg ich da falsch?

Im Buch wird auch auf einen Servertyp eingegangen der mehr als ein Client gleichzeitig behandeln kann aber wie sieht es mit der Clientseite aus wie schreibt man den das er nicht Blockiert wenn man eine Nachricht geschrieben hat?
Ein Chat besteht doch daraus das wenn man mal nicht grade schreibt trozdem Nachrichten empfangen kann! Im Buch und sonst wo wird nicht drauf eingegangen wie man soetwas Realisiert oder zumindest einen Hinweis gegeben "Du ab dieser stelle muss man das so machen wenn man Nachrichten empfangen möchte auch wenn man grade nicht Schreib" , nö da wird stumm mit einer Konsole Programmiert und der Rest soll egal sein!

Vllt könnt Ihr mal ein solches tut erstellen wie man sotwas macht weil sowas fehlt wirklich!
Mir ist klar das man für soetwas eine GUI ( 2D/3D -Engine) benötigt eine kostenlose Engine für 2D/3D annwendungen unter Win32/64 ist DarkGDK ( nur DirectX fähig ) auch diese haben bereits eine Plugin für Multiplayer aber auch nur Win32 basierend. Ich finde Serveranwendungen haben auf ein Linuxsystem zu liegen und nicht auf ein WinSystem.

Wenn es daran liegt das Ihr nicht wisst wie DarkGDK funktioniert ,würde ich euch Unterstüzen und euch eine 2D-Anwendung erstellen wo nur noch das Socket dazu geschrieben werden muss!


lg Garfield
 

Re: Vorschlag für ein Buch

Patrick am 01.04.2011 um 12:27

Zitat:
wie soll man etwas lernen wenn man nicht weiß ob es Richtig oder Falsch ist?

Man liest Anleitungen, FAQs, Howtos, studiert verfügbare Programmcodes, nutzt Foren, fragt seinen Ausbilder/Prof ...

Zitat:
Jetzt frage ich mich aber wie stellt man das an wenn ein Client Nachrichten empfangen soll ohne das er Blockiert?

Du suchst select, poll, epoll ...

Zitat:
...Dann würde der Client ja solange Blockieren bis eine Antwort zurückkommt!

Sockets sind i.d.R. bidirektional. Man kann also gleichzeitig darüber senden und empfangen.
Schau dir dazu select an.

Zitat:
Im Buch und sonst wo wird nicht drauf eingegangen wie man soetwas Realisiert ...

Wie gesagt, wenn man das Prinzip verstanden hat, müssen i.d.R. nur noch APIs und Protokolle studiert werden.

Nur meine Meinung Grafik: Smilie Zwinker
Mein letzter Azubi war übrigens auch der Meinung, dass man für alles ein Framework oder von dritten erstellte Programmcodes verwenden muss - egal, ob man die Vorgänge im Hintergrund versteht oder nicht. Anfang 2. Lehrjahr war er dann ohne Ausbildungsstelle.


Nachtrag:
Ich bin übrigens gar nicht gegen ein gutes Buch zu diesem Thema.
Mir reichen die mir bekannten Quellen aber aus und ich glaube, dass das allgemein so ist Grafik: Smilie Zwinker

--
To follow the path: look to the master, follow the master, walk with the master, see through the master, become the master.

 
Ok erstmal Danke für deine Ehrliche Meinung, ich lass mich gerne was besseren belehren vorallem weil grade in diesen Punkt meine Erfahrungen noch nicht wirklich vorhanden sind und ich das ja auch lernen möchte.

An dieser Stelle breche ich mal das Thema ab und schreibe in den von mir eröffneten Thema "Eigende Socket..." weiter da ich noch die ein oder Andere Frage habe die hier jetzt nicht mehr reingehört!

lg Garfield