Voici un bout de code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 SOCKADDR_IN sin;
 
  sin.sin_addr.s_addr = htonl(INADDR_ANY);
   sin.sin_family = AF_INET;
   sin.sin_port = htons (port);
voci l'erreur que le compilateur me renvoi
ISO C90 forbids mixed declarations and code(je comprend rien a l'erreur)
voici le code complet :
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
55
56
57
void myCallback (void *context, DSM_ServiceHandle serviceHdl, DSM_ComponentHandle componentHdl, DSM_BufContext *dsmBufCtx, eDSM_DataStatus Status ) {
    FILE *TsOut;
  SOCKET sock;
int sock_err;
		int n = 0;
		char buffer[4096];
	/*Creation de la  socket*/
 
   sock = socket (AF_INET, SOCK_DGRAM, IPPROTO_UDP);
   if (sock == INVALID_SOCKET)
   {
      printf ("socket()");
      exit (-1);
   }
 
/*création de la connexion */		
/* Initialisation */
   SOCKADDR_IN sin;
 
   sin.sin_addr.s_addr = htonl(INADDR_ANY);
   sin.sin_family = AF_INET;
   sin.sin_port = htons (port);
 
 
    TsOut = fopen("out.ts", "ab");
    fwrite( dsmBufCtx->BufAdd, sizeof(DSM_UCHAR), dsmBufCtx->BufSize, TsOut);
 
 
    fclose(TsOut);
 
		if(dsmBufCtx->BufAdd == NULL)
		{
		 printf("buffer vide");
		}
 
		else((n = fread (buffer, 1, sizeof buffer, TsOut)) > 0);
 
		printf("fread");
 
 
 
/* envoi d'un fragment du fichier pas tout le fichier*/
           sock_err = sendto (sock, buffer, n, 0, (struct sockaddr *) &sin, sizeof (sin));
 
           printf("nombre de bite envoyé est de %d\n", n);
 
	free(buffer);
 
 
   printf ("Fermeture de la socket...\n");
/*   sock_err = closesocket (sock);*/
   printf ("Fermeture du serveur terminee\n");
 
    dsmBufCtx->BufSize = 100000;
    if (Status != DSM_DataStatus_Removed)
        DSM_RegisterDataBuffer ( dsmBufCtx, serviceHdl, componentHdl );
}