Iš kitos pusės, tai per TCP yra siunčiamas ne tik char buffer, bet ir binariniai paketai, o jiems "\0" tikrai nėra reikalingas.
Šiaip, tai man galėjo nutikti ir dėl to, kad klientą prie serverio naudojau telnet'ą. Dabar rašysiu jau savo ir klientą, tai galėsiu pilnai valgyti siunčiamą informaciją.
]]>Tarkim:
n = read ( client_socket, buffer, 255 );
popen ( buffer, "r" );
Praneš apie klaidą, jog "tuščios" komandos nėra. Realiai jin yra, tačiau be '\0' ir execl(), kuris yra popen(); funkcijoje neperduoda visko teisingai sh'ui;
: command not found
Sprendimas yra gan paprastas:
n = read ( client_socket, buffer, 255 );
buffer[n - 2] = '\0';
popen ( buffer, "r" );
Ir viskas kuo puikiausiai veikia.
Tam išsiaiškinti man prireikė viso ryto. Vis galvojau, kad ne tokio cont'o char array paduodu..
Gan ekonomiškas tas TCP.
]]>