JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.phpMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

winsock fragen

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
VerruecktesHuhn
Super JLI'ler



Anmeldedatum: 30.07.2002
Beiträge: 492
Wohnort: Stuttgart
Medaillen: Keine

BeitragVerfasst am: 26.04.2003, 10:00    Titel: winsock fragen Antworten mit Zitat

Hi, alle zusammen!
Hab mal wieder nen paar Fragen, da ich mich nich allzusehr mit winsock befasst hab, was sich jetzt bemerkbar macht Wink

Also: Man muss ja für jede Connection ein Sockethandle haben? Also müsste ich, wenn meine Anwendung mehrere Client-Connections hat mehrere Sockethandles haben? Demzufolge müsst ich die Receive Funktion für jede Connection aufrufen? Das erscheint mir ein bissl stressig, deswegen frag ich lieber nochmal Smile
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 26.04.2003, 13:14    Titel: Antworten mit Zitat

Wenn du vom Server sprichst ist das korrekt(so haben wir das bei Scramble jedenfalls gemacht).
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Daniel
Mini JLI'ler



Anmeldedatum: 15.08.2002
Beiträge: 3
Wohnort: Leichlingen
Medaillen: Keine

BeitragVerfasst am: 24.05.2003, 15:58    Titel: Antworten mit Zitat

Dat stimmt schon, aber du kannst es dir vereinfachen indem du eine einfache Socketklasse schreibst
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
abc_d
JLI Master Trainee


Alter: 34
Anmeldedatum: 27.01.2003
Beiträge: 615

Medaillen: Keine

BeitragVerfasst am: 24.05.2003, 16:08    Titel: Antworten mit Zitat

Ich war zu faul um ne Liste zu benutzen und hab Arrays benutzt (30 Handle und 30 bool varialben) das reicht
_________________
http://mitglied.lycos.de/sarti/linuxisevil.gif Linux is evil - get the fact.

Never touch a running System - der Systemling
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 24.05.2003, 17:29    Titel: Antworten mit Zitat

recv musst du doch nur für die Clients aufrufen, die dir ne Message schicken...

Du musst halt einfach die fd_read Funktion dazu nutzen und damit abfragen, ob dir ein Client ne Message geschickt hat, und wenn ja fragst du die dann halt mit recv ab. Very Happy
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
abc_d
JLI Master Trainee


Alter: 34
Anmeldedatum: 27.01.2003
Beiträge: 615

Medaillen: Keine

BeitragVerfasst am: 24.05.2003, 17:42    Titel: Antworten mit Zitat

Man weis ja nicht von wem man ne nachricht bekommen hat deshalb muss man alle abfragen, ich mach das so:
Code:


            case FD_READ:
            //soviel durchgänge wie Clienten
               for(int z=0;z<AnzahlSocket;z++)
               {
                  int ilen;
                  char data[255];
                  ilen=recv(ConnectingSocket[z],data,255,0);
                  data[ilen]='\0';
                        if(data[0]=='B'&& data[1]=='L' && data[2]=='D' && data[3]==':')
                        {
                           //Nachricht vom Client das er sich ausgelogt hat
                           if(data[5]=='#' && data[6]=='1' && data[7]=='_' && data[8]=='0' && data[9]=='0')
                           {
                           //   MessageBox(hWnd,"Client hat sich ausgelogt","Client...",MB_OK);
                           
                              char EndString[256];
                              sprintf(EndString,"Client hat sich ausgelogt");

                              for(int y=0;y<AnzahlSocket;y++)
                              {
                                    BLDSendMessage(ConnectingSocket[y],EndString,false);
                              }
                                 //Fügt die Nachricht bei den eigenen Strings hinzu
                                 char AtServerMessage[255];
                                 sprintf(AtServerMessage,"Msg: %s",EndString);         
                                 CharUmwandeln(AtServerMessage,strlen(AtServerMessage));
   
                              SocketBelegt[z]=0;
                              ConnectingSocket[z]=0;
                              AnzahlSocket--;
                           }
                           //ansonst txt nachricht
                           else
                           {

                              for(int y=0;y<AnzahlSocket;y++)
                              {
                                 BLDSendMessage(ConnectingSocket[y],data,true);
                              }
   
                              data[0]='M';
                              data[1]='s';
                              data[2]='g';
                              data[3]=':';
                              CharUmwandeln(data,ilen);
                           }
                        }
               }


_________________
http://mitglied.lycos.de/sarti/linuxisevil.gif Linux is evil - get the fact.

Never touch a running System - der Systemling
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum