LiaGalanodel
Messages postés19Date d'inscriptionmercredi 3 mars 2010StatutMembreDernière intervention29 juillet 2010
-
4 mai 2010 à 09:51
LiaGalanodel
Messages postés19Date d'inscriptionmercredi 3 mars 2010StatutMembreDernière intervention29 juillet 2010
-
7 mai 2010 à 13:23
Bonjour a tous.
Je suis une grande débutante en c++ et je me heurte a un problème.
Voila, je dois faire un programme de socket.
J'utilise pour cela une source et header que j'ai nommé socket et que je rattache au main.
Le problème est que dans ma source socket.cpp j'ai le bout de code pour pouvoir recevoir des octets que je met dans un tableau.
Déjà je ne suis pas du tout sure que ce que j'ai mit fonctionne: le code:
std::string Socket::ReceiveLineServer()
{
string ret;
int VALEUR=2048;
const char* buffer[VALEUR];
char r;
for (int i=0; i<VALEUR;i++)
{
switch (recv(SocketServerCon, &r, 1, 0))
{
case 0: // not connected anymore but last line sent might not end in \n so return ret anyway.
return ret;
case -1:
return "";
throw Error(7,"Error in the receive line Server function",2);
default:
{
buffer[i] += r;
if (r == '\n')
return buffer[VALEUR];
}
}
}
}
J'ai utiliser un char ne sachant pas quoi utiliser d'autre pour mon tableau contenant les octets. Mais j'ai eu une erreur qui m'a dit qu'il fallait que je mette const* char au lieu de char.
Okay. Le problème c'est que j'aimerais faire un return avec ce tableaux et pouvoir le réutiliser dan le main pour le renvoyé vers un autre socket.
Mon programme est en faite une sorte de passerelle qui prend les données d'un côté et les revois de l'autre.
Aider moi s'il vous plait, j'ai chercher sur internet des réponses mais je ne comprend pas grand chose et ce que j'ai essayer n'a pas fonctionner.
Merci.
Bonne journée.
A voir également:
C++¨/ Problème pour recevoir des octets dans un tableau
fregolo52
Messages postés1115Date d'inscriptionmercredi 15 juin 2011StatutMembreDernière intervention 6 mai 20214 4 mai 2010 à 12:33
salut,
je pense qu'avoir appelé ton fichier socket.h (je suppose) n'est pas très judicieux vu que c'est aussi un .h système.
Il va falloir que tu utiles les semaphores (ou mutex) entre ton main et ta classe.
Avec, entre autre, les fonctions sem_wait et sem_post. Et attention au deadlock avec ce genre de chose.
Le main crée la classe socket, tu initialises le semaphore, tu passe l'id a la classe, tu fais ce que tu faisait, quand tu as ton buffer, tu fais un sem_post.
Ton buffer doit etre accessible par le main, donc tu peux le créer en tant que membre public de la classe.