Winsock Programm

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/winsock_programm_70101/page_1 - zur Vollversion wechseln!


chaze schrieb am 06.03.2003 um 14:15

Kennt jemand von euch das Programm das in VC++ in 21 Tagen programmiert wird? Bräuchte das Programm ein wenig ausgebaut.
Und zwar: Es sollen sich mehrere Clients auf einen Server verbinden können und jede eingehende Nachricht soll anschließen an alle aktiven Clients weitergeleitet werden.
Ich hoff es kann mir jemand helfen bzw. hat so ein Programm bereits daheim herumliegen, da ich 0 Plan habe.

mfg cHaZe


atrox schrieb am 06.03.2003 um 19:26

ich kenne das programm aus dem buch leider nicht, aber es gibt min. ein duzend möglichkeiten soetwas zu programmieren. unter unix ist es zb üblich, für jede connection den prozess zu forken - das läßt sich in windows mit threads nachstellen. diese prozesse/threads kommunizieren dann untereinander (messages, pipes, shared mem, messagehub-dll, dde ...)
oder aber du machst eine simple single-threaded variante, mit einer schleife, die neue connections entgegen nimmt, überprüft, ob was eingekommen ist, und bei bedarf an alle verschickt.

siehe auch: berkley sockets unter windows (schau dir in dem zusammenhang vorallem die select()-funktion an)


chaze schrieb am 06.03.2003 um 19:39

kann ich dir die datei mal schicken, damit du dir das anschauen kannst.
hab nämlich gar keinen durchblick und ich muss das schon nächsten donnerstag haben.


chaze schrieb am 06.03.2003 um 22:53

gibts ned nu wen der mir da weiterhelfen kann??


atrox schrieb am 07.03.2003 um 03:36

das programm muß doch im buch halbwegs erklärt sein, oder ?
wenn du dir das ding selber ein bishen anschaust, kann das der lösungsfindung überhaupt nicht hinderlich sein - ganz im gegenteil.


chaze schrieb am 07.03.2003 um 12:00

Zitat von atrox
das programm muß doch im buch halbwegs erklärt sein, oder ?
wenn du dir das ding selber ein bishen anschaust, kann das der lösungsfindung überhaupt nicht hinderlich sein - ganz im gegenteil.

es ist ja auch nicht schlecht erklärt aber ich versteh die erweiterungen einfach nicht. z.B. was muss ich machen, damit sich mehrere clients auf einmal auf dem server einloggen können? usw.
probleme über probleme


chaze schrieb am 09.03.2003 um 14:29

kann mir denn wirklich niemand helfen??


atrox schrieb am 09.03.2003 um 14:32

wenn du einzelne fragen hast, die das buch nicht ausreichend erklärt, kannst du sie ja hier stellen. mußt allerdings genügend infos drumherum anbieten, weil nicht jeder das buch haben wird.


atrox schrieb am 09.03.2003 um 14:46

die grundstruktur des single-threaded programms würde etwa so aussehen:

Code:
socket()
bind()
listen()
while ( !end ) {
  select() // um zu überbrüfen ob listen-socket oder user-sockets aufmerksamkeit brauchen 
  // select() einstellen, das prozess blockert wird, bis aufmerksamkeit benötigt wird -> kein "busy waiting"
  if (listensocket braucht aufmerksamkeit) {
    accept()
    neuen socket in liste der user-sockets hinzufügen
  }
  if (ein user-socket liefert neue daten (siehe select())) {
    daten lesen, evt buffern (ganze zeile/datensatz?)
    if (datensatz fertig)
      daten an alle anderenuser-sockets verschicken
  }
  if (usersocket wurde geschlossen) {
    aus liste entfernen
  }
} 
close() für alle user-sockets und server-sockets




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025