select() friert ein...



  • hallo,

    ich hab probleme mit folgendem code

    {
    
    	long rc;
    	CPort5311Dlg* pDlg = (CPort5311Dlg*) pParam;
    	while (1)
    	{
    
    		FD_ZERO(&pDlg->clients);	//Leere dieses Set
    		FD_SET((pDlg->m_server.m_hSocket),&pDlg->clients);	//Listen-Socket bzw. Server-Socket aufnehmen
    		for (int i=0;i<MAX_CLIENTS;i++)
    		{
    			if (pDlg->clientSockets[i]!=INVALID_SOCKET)
    			{
    				FD_SET(pDlg->clientSockets[i],&pDlg->clients);
    			}
    		}
    		rc=select(0,&pDlg->clients,NULL,NULL,NULL);
    		if (rc == SOCKET_ERROR)
    		{
    			AfxMessageBox("Konnte nix");
    		}
    		//if (FD_ISSET(m_server.m_hSocket,&clients))
    		//{
    			for (int i=0;i<MAX_CLIENTS;i++)
    			{
    				if (pDlg->clientSockets[i]==INVALID_SOCKET)
    				{
    					pDlg->clientSockets[i]=accept(pDlg->m_server.m_hSocket,NULL,NULL);
    					pDlg->Logging("Client angenommen");
    					break;
    				}
    				else
    					pDlg->Logging("Fehler!");
    			}
    
    	}
    

    ich meine die endlosschleife wird wohl der grund sein, aber ich hab es auch so in einem tutorial gelesen; irgendwie muss ja dieser code immer wieder durchlaufen werden...

    wie mache ich das am besten ???



  • nee, also an der while-schleife hängt es auch net... :-\

    wer weiß da was ???



  • beschreib halt mal dein Problem! Einen Source aus nem Tutorial hin klatschen und dann zu sagen geht nicht ist schon cool 🕶 aber wenn du vielleicht noch wenigstens deine Fehler die du hast etwas genauer beschreiben könntest.


Anmelden zum Antworten