Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Debutant C reseaux

1 réponse
Avatar
Bertrand DAVID
Voila je debute avec les sockets en C sous linux et je suis en train
d'essayer de creer un serveur qui permette l'envoie et la reception de
chaine de caractere a partir d un client telnet quelconque.
J'arrive a faire communiquer le serveur et le client en envoyuant des
chaines de caracteres et en les recevant mais je me sers de write() et
read a tour de role pour envoyer et recevoir donc je peux pas faire les
2 meme chose en meme temps donc es ce qu il faut que j utilise un 2e
socket ? comment ?
Voila le ptit bout de code que je voudrais amelirorer :

read(new_fd,rec,256);
printf("%s",rec);

printf("\n\nMessage :");
scanf("%s",mess1);
write(new_fd,mess1,strlen(mess1));

moi je voudrais que ca read et meme temps que ca write or la ca read et
aprés ca write.
Merci de m'aider.

Bertrand DAVID

1 réponse

Avatar
FAb
Bertrand DAVID writes:

Voila je debute avec les sockets en C sous linux et je suis en train d'essayer
[...]

pour envoyer et recevoir donc je peux pas faire les 2 meme chose en meme temps
donc es ce qu il faut que j utilise un 2e socket ? comment ?
[...]

moi je voudrais que ca read et meme temps que ca write or la ca read et aprés ca
write.


??????????
Comment comptes-tu gérer 2 actions simultanées ?
Vas-tu utiliser des threads ? Même des processus ou des threads ne savent pas
faire 2 choses exactement au même moment (sur un mon-processeur).

Si après tu veux changer l'algorithme ping-pong pour qu'à chaque cycle tu
choisisses l'action à faire je te conseille de jeter un oeil à select.

man 2 select
Oh. Un exemple de serveur qui lit et écrit pour plusieurs clients... ;-)

Cordialement.
FAb