| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen   | 
	
	
	
		| Autor | 
		Nachricht | 
	
	
		VerruecktesHuhn Super JLI'ler
  
 
  Anmeldedatum: 30.07.2002 Beiträge: 492 Wohnort: Stuttgart Medaillen: Keine 
	
  | 
		
			
				 Verfasst am: 26.04.2003, 09:00    Titel: winsock fragen | 
				     | 
			 
			
				
  | 
			 
			
				Hi, alle zusammen! 
 
Hab mal wieder nen paar Fragen, da ich mich nich allzusehr mit winsock befasst hab, was sich jetzt bemerkbar macht  
 
 
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   | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		Hazel JLI MVP
  
  
  Alter: 40 Anmeldedatum: 19.07.2002 Beiträge: 1761
  Medaillen: Keine 
	
  | 
		
			
				 Verfasst am: 26.04.2003, 12:14    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				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 | 
		 | 
	
	
		  | 
	
	
		Daniel Mini JLI'ler
 
 
  Anmeldedatum: 15.08.2002 Beiträge: 3 Wohnort: Leichlingen Medaillen: Keine 
	
  | 
		
			
				 Verfasst am: 24.05.2003, 14:58    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				| Dat stimmt schon, aber du kannst es dir vereinfachen indem du eine einfache Socketklasse schreibst | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		abc_d JLI Master Trainee
  
  Alter: 35 Anmeldedatum: 27.01.2003 Beiträge: 615
  Medaillen: Keine 
	
  | 
		
			
				 Verfasst am: 24.05.2003, 15:08    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				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 | 
		 | 
	
	
		  | 
	
	
		TheMillenium Dark JLI'ler
 
 
  Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine 
	
  | 
		
			
				 Verfasst am: 24.05.2003, 16:29    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				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.    _________________ The source of all power is in its destiny... | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		abc_d JLI Master Trainee
  
  Alter: 35 Anmeldedatum: 27.01.2003 Beiträge: 615
  Medaillen: Keine 
	
  | 
		
			
				 Verfasst am: 24.05.2003, 16:42    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				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 | 
		 | 
	
	
		  | 
	
	
		 |