Bonjour,

Je vous expose mon "petit" problème.

J'ai crée un système client -> serveur avec les sockets.

Mon serveur récupère bien ma valeur dans ma variable "buffer". Cependant j'aimerais que cette valeur modifie ou ce modifie à intervalle de temps régulier dans la table au bon champs de ma BDD...

Quelqu'un aurait-il une idée ?

Merci d'avance pour votre réponse.

Ci dessous le code de mon serveur udp.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <winsock2.h> // pour les fonctions socket
#include <cstdio> // Pour les Sprintf
 
WSADATA initialisation_win32; // Variable permettant de récupérer la structure d'information sur l'initialisation
int erreur; // Variable permettant de récupérer la valeur de retour des fonctions utilisées
int tempo; // Variable temporaire de type int
int nombre_de_caractere; // Indique le nombre de caractères qui a été reçu ou envoyé
char buffer[250]; // Tampon contenant les données reçues ou envoyées
SOCKET id_de_la_socket; // Identifiant de la socket
SOCKADDR_IN information_sur_la_source; // Déclaration de la structure des informations lié à l'écoute
 
int main (int argc, char* argv[])
{
    while(1){
    erreur=WSAStartup(MAKEWORD(2,2),&initialisation_win32);
    if (erreur!=0)
        printf("\nErreur : Initialisation de Winsock : %d %d",erreur,WSAGetLastError());
    else
        printf("\nWSAStartup  : OK");
 
    id_de_la_socket=socket(AF_INET,SOCK_DGRAM,0);   
    if (id_de_la_socket==INVALID_SOCKET)
        printf("\n Erreur : Creation de socket : %d",WSAGetLastError());
    else
        printf("\nsocket      : OK");
 
    information_sur_la_source.sin_family=AF_INET;
    information_sur_la_source.sin_addr.s_addr=INADDR_ANY; // Ecoute sur toutes les IP locales
    information_sur_la_source.sin_port=htons(5000); // Ecoute sur le port 5000
    erreur=bind(id_de_la_socket,(struct sockaddr*)&information_sur_la_source,sizeof(information_sur_la_source));
    if (erreur!=0)
        printf("\nDesole, je ne peux pas ecouter ce port : %d %d",erreur,WSAGetLastError());
    else
        printf("\nbind        : OK");
 
 
    tempo=sizeof(information_sur_la_source); // Passe par une variable afin d'utiliser un pointeur
    nombre_de_caractere=recvfrom(id_de_la_socket,buffer,250,0,(struct sockaddr*)&information_sur_la_source,&tempo);
    buffer[nombre_de_caractere]=0; // Permet de fermer le tableau après le contenu des data, car la fonction recvfrom ne le fait pas
    printf("\n\n:Le client vous a envoye : %s",buffer);
 
    erreur=closesocket(id_de_la_socket);
    if (erreur!=0)
        printf("\nErreur la socket du a l'erreur : %d %d",erreur,WSAGetLastError());
    else
        printf("\nclosesocket : OK");
 
    erreur=WSACleanup();
    if (erreur!=0)
        printf("\nDesole, je ne peux pas liberer winsock du a l'erreur : %d %d",erreur,WSAGetLastError());
    else
        printf("\nWSACleanup  : OK");
    }
}