recv



  • Hallo zusammen
    Ich sitze daran jetzt schon einigen Stunden und verstehe einfach nicht was ich falsch mache... Ich habe einen Server und einen Client und ich kriege es einfach nicht hin etwas mit dem Server vom Client zu empfangen. Ich habe einen extra Thread für die accept(...) Methode und danach versuche ich gleich mit recv(..) etwas zu empfangen. Das sieht dann so aus:

    void Accept(void* accept_socket1)
    {
    	long rc = 0;
    	char buf[256];
    	wchar_t test[256];
    	SOCKET accept_socket = (SOCKET)accept_socket1;
    	CHARRANGE cr;
    	cr.cpMin = -1;
    	cr.cpMax = -1;
    	SOCKET connectedSocket;
    	connectedSocket = accept(accept_socket,NULL,NULL);
    	if(connectedSocket == INVALID_SOCKET)
    	{
    		SendMessage(ausgabe, EM_EXSETSEL, 0, (LPARAM)&cr);
    		SendMessage(ausgabe, EM_REPLACESEL, 0, (LPARAM)L"\naccept Fehler...");
    	}
    	else
    	{
    		SendMessage(ausgabe, EM_EXSETSEL, 0, (LPARAM)&cr);
    		SendMessage(ausgabe, EM_REPLACESEL, 0, (LPARAM)L"\nNeue Verbindung wurde akzeptiert!...");
    	}
    	while(rc != SOCKET_ERROR)
      {
    	rc = recv(connectedSocket,buf,256,0);
    	MultiByteToWideChar(CP_ACP, 0, buf, -1, test, sizeof(test)); 
    	SendMessage(ausgabe, EM_EXSETSEL, 0, (LPARAM)&cr);
    	SendMessage(ausgabe, EM_REPLACESEL, 0, (LPARAM)test);
      }
    	closesocket(connectedSocket);
    
    }
    

    Im Client sende ich bei einem Druck auf einen Button mit send einen String.

    if (HIWORD(wParam) == BN_CLICKED)
    {
    	send(s,"Hallo123\0",9,0);
    }
    

    MfG Tim



  • Error/Return-Codes auf beiden Seiten checken 🙄



  • Edit...war Müll

    MfG Tim



  • SO jetzt aber...das send(s,"Hallo123\0",9,0); im Client gibt -1 also SOCKET_ERROR zurück. Wenn ich jetzt aber WSAGetLastError() aufrufe gibt mir das 0 zurück...??

    a = send(s,"Hallo123\0",9,0);
    wchar_t h;
    MessageBox(NULL,_itow(a,&h,10),NULL,NULL);// Gibt -1 aus
    a = WSAGetLastError();
    MessageBox(NULL,_itow(a,&h,10),NULL,NULL);//Gibt 0 aus
    


  • Es lag wohl daran, das ich einen SOCKET falsch erstellt habe... jetzt tut es..


Anmelden zum Antworten