Changeset 9 in Main for trunk


Ignore:
Timestamp:
Sep 13, 2024, 8:28:43 PM (2 months ago)
Author:
Nishi
Message:

wip

Location:
trunk/Server
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Server/main.c

    r8 r9  
    5050        }
    5151        cm_log("Daemon", "Ready");
     52        tw_server_loop();
    5253}
  • trunk/Server/server.c

    r8 r9  
    2525fd_set fdset;
    2626int sockcount = 0;
    27 int sockets[MAX_PORTS];
    2827
    2928#ifdef NO_IPV6
    30 struct sockaddr_in addresses[MAX_PORTS];
     29#define SOCKADDR struct sockaddr_in
    3130#else
    32 struct sockaddr_in6 addresses[MAX_PORTS];
     31#define SOCKADDR struct sockaddr_in6
    3332#endif
     33SOCKADDR addresses[MAX_PORTS];
     34int sockets[MAX_PORTS];
    3435
    3536void close_socket(int sock) {
     
    105106                        return 1;
    106107                }
     108                FD_SET(sock, &fdset);
    107109                sockets[i] = sock;
    108110        }
    109111        return 0;
    110112}
     113
     114void tw_server_loop(void){
     115        struct timeval tv;
     116        while(1){
     117                tv.tv_sec = 1;
     118                tv.tv_usec = 0;
     119                int ret = select(sockcount, &fdset, NULL, NULL, &tv);
     120                if(ret == -1){
     121                        break;
     122                }else if(ret > 0){
     123                        /* connection */
     124                        printf("!\n");
     125                        int i;
     126                        for(i = 0; i < sockcount; i++){
     127                                if(FD_ISSET(sockets[i], &fdset)){
     128                                        SOCKADDR claddr;
     129                                        int clen = sizeof(claddr);
     130                                        int sock = accept(sockets[i], (struct sockaddr*)&claddr, &clen);
     131                                        close_socket(sock);
     132                                }
     133                        }
     134                }
     135        }
     136}
  • trunk/Server/tw_server.h

    r8 r9  
    55
    66int tw_server_init(void);
     7void tw_server_loop(void);
    78
    89#endif
Note: See TracChangeset for help on using the changeset viewer.