Bonjour !

Voilà je dois reprendre un programme développé sous Linux et l'adapter au développement Windows.

Le problème c'est que la portabilité est semble-t-il pas terrible. Et pour cause ! J'ai réussi à trouver les bibliothèques sans trop de mal.

ce qui était sous Linux:
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
Devient ça sous Windows :
#include <winsock.h>
#include <winsock2.h>

Le problème est que sigaction ne compile pas sous windows. je suis obliger d'utiliser signal.h et les 6 paramètres qui existent.

http://www.cplusplus.com/reference/c...signal/signal/

Je ne connais pas énormément la gestion de signaux. Et j'avoue être un peu perdu.

c'est ici que ça coince :

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
 
void fin (int sig) {
    bdd_fermer();
    if (close (s) != -1)
        printf("Fermeture du socket serveur\n");
    exit(0);
}
 
int main(){
    WSADATA WSAData;
    WSAStartup(MAKEWORD(2,0), &WSAData);
    struct sockaddr_in saddr;
    struct sockaddr_in caddr;
    typedef size_t socklen_t;// = sizeof(caddr);
    socklen_t caddrsize = sizeof(caddr);
    int ret;
    int c;
    pid_t child_pid;
   struct sigaction act; //n'est pas connu
 
    //Quitter proprement par ^C
    act.sa_handler = fin;
    sigemptyset(&act.sa_mask);
    act.sa_flags = 0;
    sigaction(SIGINT, &act,0);
 
    signal(SIGCHLD,SIG_IGN); // SIGCHLD n'existe pas sous windows
 
return 0;
}
J'utilise CodeBlocks comme IDE.

Merci à vous