Tarkoitus olisi lukea socketista pieni, alle 1024 merkijono ja kokeilen tällaista lukuohjelman pätkää
int my_read()
{
if((new_sock = accept(listening_sock, (struct sockaddr *)&address, (socklen_t*)&address_length)) < 0)
{
perror("Accept");
exit(EXIT_FAILURE);
}
n_of_read_chars = read(new_sock, in_buffer, 1024 - 1); // tila loppumerkille
in_buffer[n_of_read_chars ] = '\0'; // lisätään loppumerkki
return 0; // lukeminen onnistui
}
eli jos luettavaa tulee ja listen huomaa sen, tehdään uusi socketti, josta luetaan (toivottavasti vain korkeintaan) 1023 merkkiä. Lukemisen varattu puskuritila on 1024 ja viimeisen luetun merkin jälkeen pitäisi lisätä '\0'.
Onko koodissa näkyvissä todennäköisiä ongelmia, mahdollistaako se esimerkiksi ylivuodon ja osaako se lukea varmasti kaiken alle 1023 pituisen tulevan viestin, kun socket on
socket( AF_INET, SOCK_STREAM, 0))