00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include <stdio.h>
00021 #include <signal.h>
00022 #include <ListenSocket.h>
00023 #include "ChatHandler.h"
00024 #include "ChatSocket.h"
00025
00026 #define DEB(x)
00027
00028
00029 static int m_quit = 0;
00030
00031
00032 #ifndef _WIN32
00033 void sigint(int s)
00034 {
00035 DEB( printf("sigint\n");)
00036 m_quit++;
00037 }
00038
00039 void sighup(int s)
00040 {
00041 DEB( printf("sighup\n");)
00042 m_quit++;
00043 }
00044
00045 void sigusr1(int s)
00046 {
00047 }
00048
00049 void sigusr2(int s)
00050 {
00051 }
00052
00053 void sigpipe(int s)
00054 {
00055 }
00056
00057 void siginit(void)
00058 {
00059 signal(SIGINT, (__sighandler_t)sigint);
00060 signal(SIGHUP, (__sighandler_t)sighup);
00061 signal(SIGUSR1, (__sighandler_t)sigusr1);
00062 signal(SIGUSR2, (__sighandler_t)sigusr2);
00063 signal(SIGPIPE, (__sighandler_t)sigpipe);
00064 }
00065 #endif
00066
00067
00068 int main(int argc,char *argv[])
00069 {
00070 ChatHandler h;
00071 ListenSocket<ChatSocket> l(h);
00072 #ifdef _WIN32
00073 siginit();
00074 #endif
00075
00076 if (l.Bind(4440))
00077 {
00078 exit(-1);
00079 }
00080 h.Add(&l);
00081 while (!m_quit)
00082 {
00083 h.Select(1,0);
00084 }
00085 }
00086