| 12
 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
 
 | struct sockaddr_in   addr;
   struct sockaddr_in   claddr;
 
   int sd,asd,established,i,retval,error,lg;
 
   retval = opensocket( SOCK_STREAM, &error );
 
   if(retval == API_ERROR)//API_ERROR = -1, voir TCPIPAPI.h
   {
	    printf("\r\nSocket open failed: %d",error);
	    goto TCP_SERVER_DONE;
   }
   else
   {
	    sd = retval;
   }
 
   addr.sin_family =  PF_INET;
   //convert your sending port to correct byte order
	retval = htons(TM_PORT_ECHO);
 
   addr.sin_port =  retval;
   addr.sin_addr.s_addr =  0L;
 
   retval = bind( sd, (struct sockaddr *) &addr, &error );
 
   if(retval == API_ERROR)
   {
	    printf("\r\nTCPserver: Socket bind failed: %d",error);
	    goto TCP_SERVER_DONE;
   }
 
   while(1)   //do forever
   {
 
     printf("\r\nTCPserver: Listening for connection on socket");
     retval = listen( sd, 1, &error );// 1 -> nb max de connections écoutées en meme temps
 
        if(retval == API_ERROR)// !=-1
        {
	         printf("\r\nTCPserver: Socket listen failed: %d",error);
	         goto TCP_SERVER_DONE;
        }
 
     claddr.sin_family      =  PF_INET;
     claddr.sin_port        =  0;
     claddr.sin_addr.s_addr =  0L;
     lg = sizeof(struct sockaddr);
     retval = accept( sd, (struct sockaddr *) &claddr, &lg );
/*avant la fonction avait &error au lieu de &lg*/
     if(retval == API_ERROR)
     {
	      printf("\r\nTCPserver: Socket accept failed: %d",error);
	      goto TCP_SERVER_DONE;
     } | 
Partager