Transfert de tbleaux par socket en c++builder
salisafi
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
coucoumiya -
coucoumiya -
bonjour,
désolé je repose cette question ici car par erreur j lé mis dans etudes et formation
Bonjour, SVP si quelqun peut m'aider je serais reconnaissante
je veux envoyer 3tableaux de données V, O et G dont les deux premiers ont la dimension nbV(tableau d'entiers) et G la dim nbG (tableau de ponits x,y,z qui sont des réels)
pour cela j'utilise une socket client d'une coté et socket serveur de l'autre coté. le programme marche pour des petits tableau mais pas pour des grands volume de données.
en voici les codes
client :
void __fastcall TForm1::Button1Click(TObject *Sender)
{
...
ClientSocket1->Socket->SendBuf(&nbV,sizeof(int));
ClientSocket1->Socket->SendBuf(&nbG,sizeof(int));
int n1= ClientSocket1->Socket->SendBuf(V,nbV*3*sizeof(int));
int n2= ClientSocket1->Socket->SendBuf(O,nbV*3*sizeof(int));
int n3= ClientSocket1->Socket->SendBuf(G,nbG*sizeof(Vertex));
serveur :
void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender, TCustomWinSocket *Socket)
{
.....
Socket->ReceiveBuf(&nbV,sizeof(int));
Socket->ReceiveBuf(&nbG,sizeof(int));
// Allocation des Tables
V = new int [nbV*3];
O = new int [nbV*3];
G = new Vertex [nbG];
int bcount = 0; //total bytes lus
int br = 0;//bytes lus
int n= nbV*3*sizeof(int); //byte à lire
char * buf=(char*)V;
while (bcount < n )
{ // loop until full buffer
br =(Socket->ReceiveBuf(buf,n - bcount)) ;
if (br>0)
{bcount += br; //* increment byte counter *
buf += br; //* move buffer ptr for next read
}
else
break;
}
....
désolé je repose cette question ici car par erreur j lé mis dans etudes et formation
Bonjour, SVP si quelqun peut m'aider je serais reconnaissante
je veux envoyer 3tableaux de données V, O et G dont les deux premiers ont la dimension nbV(tableau d'entiers) et G la dim nbG (tableau de ponits x,y,z qui sont des réels)
pour cela j'utilise une socket client d'une coté et socket serveur de l'autre coté. le programme marche pour des petits tableau mais pas pour des grands volume de données.
en voici les codes
client :
void __fastcall TForm1::Button1Click(TObject *Sender)
{
...
ClientSocket1->Socket->SendBuf(&nbV,sizeof(int));
ClientSocket1->Socket->SendBuf(&nbG,sizeof(int));
int n1= ClientSocket1->Socket->SendBuf(V,nbV*3*sizeof(int));
int n2= ClientSocket1->Socket->SendBuf(O,nbV*3*sizeof(int));
int n3= ClientSocket1->Socket->SendBuf(G,nbG*sizeof(Vertex));
serveur :
void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender, TCustomWinSocket *Socket)
{
.....
Socket->ReceiveBuf(&nbV,sizeof(int));
Socket->ReceiveBuf(&nbG,sizeof(int));
// Allocation des Tables
V = new int [nbV*3];
O = new int [nbV*3];
G = new Vertex [nbG];
int bcount = 0; //total bytes lus
int br = 0;//bytes lus
int n= nbV*3*sizeof(int); //byte à lire
char * buf=(char*)V;
while (bcount < n )
{ // loop until full buffer
br =(Socket->ReceiveBuf(buf,n - bcount)) ;
if (br>0)
{bcount += br; //* increment byte counter *
buf += br; //* move buffer ptr for next read
}
else
break;
}
....
A voir également:
- Transfert de tbleaux par socket en c++builder
- Pdftk builder - Télécharger - PDF
- Tiny11 builder - Accueil - Windows
- Family tree builder - Télécharger - Généalogie
- Whatsapp transfert discussion - Accueil - WhatsApp
- Transfert de fichier entre 2 pc par wifi - Guide