• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

C++, TCP Socket

Object Storage Arubacloud
0 głosów
281 wizyt
pytanie zadane 25 stycznia 2016 w C i C++ przez Royd Obywatel (1,250 p.)

Dzień dobry,

Chciałem zapytać dlaczego funkcja write() wysyła do clienta smieci? Ma to być taka sama odpowiedź zwrotna jaką napisał kilent tymczasem wychodzą krzaczki proszę o pomoc


#include<stdio.h>
#include<string.h>    //strlen
#include<sys/socket.h>
#include<arpa/inet.h> //inet_addr
#include<unistd.h>    //write
 
int main(int argc , char *argv[])
{
    int socket_desc , client_sock , c , read_size;
    struct sockaddr_in server , client;
    char client_message[2000];
     
    //Create socket
    socket_desc = socket(AF_INET , SOCK_STREAM , 0);
    if (socket_desc == -1)
    {
        printf("Could not create socket");
    }
    puts("Socket created");
     
    //Prepare the sockaddr_in structure
    server.sin_family = AF_INET;
    server.sin_addr.s_addr = INADDR_ANY;
    server.sin_port = htons( 8888 );
     
    //Bind
    if( bind(socket_desc,(struct sockaddr *)&server , sizeof(server)) < 0)
    {
        //print the error message
        perror("bind failed. Error");
        return 1;
    }
    puts("bind done");
     
    //Listen
    listen(socket_desc , 3);
     
    //Accept and incoming connection
    puts("Waiting for incoming connections...");
    c = sizeof(struct sockaddr_in);
     
    //accept connection from an incoming client
    client_sock = accept(socket_desc, (struct sockaddr *)&client, (socklen_t*)&c);
    if (client_sock < 0)
    {
        perror("accept failed");
        return 1;
    }
    puts("Connection accepted");
     
    //Receive a message from client
    while( (read_size = recv(client_sock , client_message ,  2000 , 0)) > 0 )
    {
        //Send the message back to client
		puts("Client Napisal: ");
       write(client_sock , client_message , strlen(client_message));

    }
     
    if(read_size == 0)
    {
        puts("Client disconnected");
        fflush(stdout);
    }
    else if(read_size == -1)
    {
        perror("recv failed");
    }
     
    return 0;
}

 

1 odpowiedź

0 głosów
odpowiedź 26 stycznia 2016 przez Kaze47 Obywatel (1,700 p.)

 while( (read_size = recv(client_sock , &client_message ,  2000 , 0)) > 0 )

    {

        //Send the message back to client

        puts("Client Napisal: ");

       write(client_sock , &client_message , strlen(client_message));

    }

spróbuj podmienić ten fragment kodu, jeśli nie pomoże wyślij co zwraca Ci w wiadomości, ewentualnie w każdym kroku sprawdzaj jakie dane są w zmiennych

Podobne pytania

0 głosów
0 odpowiedzi 75 wizyt
pytanie zadane 18 stycznia 2019 w Sieci komputerowe, internet przez yossarian22 Początkujący (340 p.)
0 głosów
0 odpowiedzi 354 wizyt
pytanie zadane 3 maja 2018 w C i C++ przez ___Shell___ Nowicjusz (180 p.)
0 głosów
1 odpowiedź 340 wizyt
pytanie zadane 8 marca 2018 w C i C++ przez niezalogowany

92,565 zapytań

141,416 odpowiedzi

319,597 komentarzy

61,948 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...