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 :
J'utilise CodeBlocks comme IDE.
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; }
Merci à vous
Partager