OVH Cloud OVH Cloud

definition de Send() et Recv()

1 réponse
Avatar
marsupile
j'essai d'utiliser les fonctions send et recv mais j'ai un petit problème.
d'après moi, je dois définir ces fonctions comme ça :

send(Nom_du_socket,buffer_à_envoyer,taille_du_buffer,0)
et
recv(Nom_du_socket,buffer_à_envoyer,taille_du_buffer,0)


mais j'obtiens une erreur du type :

E2342 Mauvaise correspondance de type dans le paramètre 's' ('unsigned int'
désiré, 'TClientSocket *' obtenu)

mais si je met un nombre à la place du nom de mon socket, cela compile.

la grande question est de savoir quel nombre dois-je mettre


marsuboy@numericable.fr

1 réponse

Avatar
Dominique Baldo
marsupile nous disait
j'essai d'utiliser les fonctions send et recv mais j'ai un petit problème.
d'après moi, je dois définir ces fonctions comme ça :

send(Nom_du_socket,buffer_à_envoyer,taille_du_buffer,0)



le prototype de send est le suivant:
int send (
SOCKET s,
const char FAR * buf,
int len,
int flags
);

et SOCKET est un int. s est le descripteur de ta socket obtenue après un
appel à la fonction socket(int af,int type,int protocol)

int s;
s=socket(AF_INET,SOCK_STREAM,0);
if (connect(s,addr_serv,sizeof(addr_serv))) {
send(s,buffer,sizeofbuffer,0)
}

E2342 Mauvaise correspondance de type dans le paramètre 's' ('unsigned int'
désiré, 'TClientSocket *' obtenu)


Je n'utilise pas TClientSocket mais j'imagine que c'est une classe
maline qui doit avoir sa propre méthode Send()
donc en gros tu dois pouvoir faire un truc du genre:

TClientSocket *socket_client = new TClientSocket();
socket_client->Connect(adresse_serveur,port_serveur);
socket_client->Send(buffer,sizeofbuffer);
socket_client->Close();

c'est sans doute pas exactement ça: RTFM sur TClientSocket