Problem mit einem Client



  • Ich habe mir einen Client geschrieben der sich mit nem Server verbinden und das man dann Texte zum Server sende kann.
    Es geht alles die Verbindung.
    Nur es wird nur 1Wort an den Server geschickt.
    Das heißt wenn ich "Ich bins" eingebe.
    Dann wird nur "Ich" gesendet hier mal der Codeschnipsel:

    printf ("Sagen:> ");
      scanf ("%s",&Request);
      if (send(sckSocket, Request, 5, 0) <= 0) { 
      printf("Server empfängt nichts!\n"); 
    
        system ("PAUSE"); 
        return 253; 
      } else { 
        printf("%s\n",Request); 
      }
    

    Ich weiß nicht wie ich es hinkriege das alles gesendet wird



  • Naja, ich würde sagen, es werden nur 5 Bytes gesendet, oder?



  • Also dann muss ich die Größe von request ermitteln und dann schicken?



  • Hi,

    schaue dir mal den Code an:

    gets(buf);
    send(s,buf,strlen(buf),0);
    

    Ich kenne mich mit C nicht aus, aber scanf liest evtl. ähnlich wie cin nur das erste Wort ein. gets () dagegen einen ganzen Satz. Noch eine Frage: Funktioniert dein Programm auch auf fremden Rechnern, also wenn du die IP eines fremden Rechners eingibst, kommt dann darauf die Textnachricht an?

    MfG mikey.



  • Habe es so gelöst:

    char Request[80]; 
      char Antwort[100]; 
    
      /* Request eingeben und zum Server senden. Programm beenden, falls Server nicht empfangen will */ 
      printf ("Sagen:> ");
      fgets(Request,80,stdin);
      if (send(sckSocket, Request, 5, 0) <= 0) { 
      printf("Server empfängt nichts!\n"); 
    
        system ("PAUSE"); 
        return 253; 
      } else { 
        printf("%s\n",Request); 
      }
    

    Und jetzt gehts....



  • Wie kann ich mein QuellCode schützen also das niemand den Code in die Finger kriegt?



  • In dem du keine Trojaner auf deinem PC installierst^^



  • MSDN schrieb:

    int send(
    SOCKET s,
    const char* buf, // [in] A pointer to a buffer containing the data to be transmitted.
    int len, // [in] The length, in bytes, of the data in buffer pointed to by the buf parameter.
    int flags
    );

    Du sendest immer noch nur 5 Bytes?


Anmelden zum Antworten