Threads-sockets



  • HI,
    ich versuche durch Broadcasts alle Server zu finden, aber bei unblocking sockets bekomme ich den Fehler "10035"

    for(i=i;i<120;i++){
       _Broadcast* Current;
       rc=recvfrom(ServerSockListen,buffer,SIZE_BROADCAST,0, (struct sockaddr *) &i_addr2, &size);
       int error=WSAGetLastError( );
    
       Current=(_Broadcast*) buffer;
    
       if(rc!=-1)
       {
          //iprintf(":",rc,":");
    
          //ioctl(ServerSockListen, FIONBIO, &flags);
    
          //iprintf("Buffer: ", Current->IP);
    
          if(!existBroadcast(*Current))
          {
              Empfangen[nrBroadcast]=*Current;
              nrBroadcast++;
          }
       }
       swiWaitForVBlank();
    }
    

    Wenn ich Threads verwende (mit blocking sockets) frieren der Thread und das Programm bei "recvfrom" ein...

    HANDLE hThread; 
    		DWORD dwThreadID; 
    
    		int index=0;
    
       hThread = CreateThread( NULL, 
                                      0, 
                                      ThreadFunc, 
                                      (LPVOID)index, 
                                      0, 
                                      &dwThreadID
                                     );
    

    Könnt ihr mir helfen ??



  • gelöst.

    Ich muss den Thread mit "TerminateThread" beeden, "ExitThread" beendet den eigenen Thread (main) ^^


Anmelden zum Antworten