socket et envoi de structure

socket et envoi de structure - C - Programmation

Marsh Posté le 15-11-2003 à 15:30:07    

salut à tous,
 
je fais un programme en C et je souhaiterais envoyer non pas des char* mais des structures (avec send(...)) contenant message + IP source + IP dest,etc...
 
gcc me jette à la compile car il ne peut transtype ma structure en char * (argument de send), ce qui est normal. qq1 a une solution pour envoyer des structures ?

Reply

Marsh Posté le 15-11-2003 à 15:30:07   

Reply

Marsh Posté le 15-11-2003 à 16:22:16    

& + cast

Reply

Marsh Posté le 15-11-2003 à 16:22:26    

mais c ptet mieux d'envoyer champ par champ

Reply

Marsh Posté le 15-11-2003 à 16:26:12    

parce que envoyer


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
Reply

Marsh Posté le 15-11-2003 à 16:26:23    

du langage machine c'est mal


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
Reply

Marsh Posté le 15-11-2003 à 16:42:27    

en fait je voudrais quand mm envoyer ma structure , car si entre temps l'autre en face recoit autre chose (c'est un chat à plusieurs), ça va foutre le bordel je pense.
 
j'aurais bien aimé faire un send(DescSock, (cont void *)MaStructure, sizeof(MaStructure));

Reply

Marsh Posté le 15-11-2003 à 16:44:40    

send(DescSock, (cont void *)&MaStructure, sizeof(MaStructure));

Reply

Marsh Posté le 15-11-2003 à 16:56:01    

et ça devrait marcher ? j'essaie de suite...

Reply

Marsh Posté le 15-11-2003 à 16:56:54    

ça passe à la compile, merci chris !

Reply

Marsh Posté le 15-11-2003 à 16:57:22    

je vais modifier le client en conséquence et je teste le tout...

Reply

Marsh Posté le 15-11-2003 à 16:57:22   

Reply

Marsh Posté le 15-11-2003 à 17:45:00    

bon ça marche c cool. par contre j'ai un autre pb : étant donné que c un chat à plusieurs, et plutot que d'utiliser des forks et processus fils pour chaque utilisateur, j'utilise la commande select(). néanmoins les fonctions FDISSET ne captent pas le changement d'état des sockets, du coup je peux envoyer un seul message et ensuite ça marche plus.

Reply

Marsh Posté le 15-11-2003 à 17:49:15    

fais des threads c plus mieux (imho)

Reply

Marsh Posté le 15-11-2003 à 18:02:20    

c'est ce que je pensais faire au début il y a eut débat, mais finalement le select() paraissait plus simple à implémenter (surtout que je n'ai que deux semaines pour créer cet irc).

Reply

Marsh Posté le 15-11-2003 à 20:55:02    

bah poste le code de ton select...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed