Je suis un client de C++. J'ai une question concernant l'initialisation d'un tampon de caractères dynamiquementInitialisation dynamique d'un tampon de char public
class Pkg {
public:
Header t;
char buf[LENGTH];
};
Je vais envoyer l'objet de la classe sur le réseau. classe d'en-tête est converti en ordre des octets du réseau
Alors, je veux envoyer comme ça
Pkg ackpkt;
sendto(sd, &ackpkt, sizeof(ackpkt), 0,(struct sockaddr*)socket1,sizeof(struct sockaddr_in);
Le champ de longueur ici devrait être dynamiquement assignée à chaque fois juste avant que j'appelle sendto. Une façon dont je pense à cela est de déclarer que LENGTH est global.
Du côté des récepteurs, je veux recevoir l'objet dans un objet du même class.ie les données de t d'objets devraient être organisés dans ackpktrecv.t et tampon dans ackpktrecv.buf
recvfrom (sd, & ackpktrecv, sizeof ackpktrecv, 0, (struct sockaddr *) & sockaddrs, & len);
Comment puis-je recevoir l'objet avec le tampon de caractères ayant la même longueur que LONGUEUR Quelqu'un peut-il me suggérer de quelle manière je peux y parvenir?
Oh, mais je veux recv l'objet sur le côté serveur. Alors cela fonctionnera, recvfrom (sd, et ackpkt, sizeof ackpkt, 0, (struct sockaddr *) & sockaddrs, &len); Je veux les données que j'ai envoyé dans un tampon de caractères à réorganiser dans la mémoire tampon de caractères à l'objet du côté récepteur –
@CG recieving fonctionne correctement, mais vous aurez probablement besoin de le faire en morceaux, puis de combiner les paquets ensemble, ce qui est très facile avec un vecteur, car ils sont facilement concaténés – JaredPar