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
   | 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