main.cpp
上传用户:zslianheng
上传日期:2013-04-03
资源大小:946k
文件大小:2k
源码类别:

Linux/Unix编程

开发平台:

Visual C++

  1. /***************************************************************************
  2.  *                                                                         *
  3.  *   This program is free software; you can redistribute it and/or modify  *
  4.  *   it under the terms of the GNU General Public License as published by  *
  5.  *   the Free Software Foundation; either version 2 of the License, or     *
  6.  *   (at your option) any later version.                                   *
  7.  *                                                                         *
  8.  *   copyright            : (C) 2002 by Zhang Yong                         *
  9.  *   email                : z-yong163@163.com                              *
  10.  ***************************************************************************/
  11. #include <stdlib.h>
  12. #include <iostream.h>
  13. #include "sessionhash.h"
  14. int main(int argc, char *argv[])
  15. {
  16. #ifdef _WIN32
  17. WSADATA wsaData;
  18. WORD version = MAKEWORD(2, 2);
  19. if (WSAStartup(version, &wsaData) != 0) {
  20. cerr << "WSAStartup() failed." << endl;
  21. return 1;
  22. }
  23. #endif
  24. if (!UdpSession::initialize())
  25. return 1;
  26. cout << "myicqd is now started." << endl << endl;
  27. time_t sendTime, keepAliveTime, now;
  28. sendTime = keepAliveTime = time(NULL);
  29. while (true) {
  30. UdpSession::onReceive();
  31. now = time(NULL);
  32. if (now - sendTime > SEND_TIMEOUT) {
  33. sendTime = now;
  34. UdpSession::checkSendQueue();
  35. }
  36. if (now - keepAliveTime > KEEPALIVE_TIMEOUT) {
  37. keepAliveTime = now;
  38. UdpSession::checkKeepAlive();
  39. }
  40. UdpSession::broadcastMessages();
  41. }
  42. UdpSession::cleanUp();
  43. #ifdef _WIN32
  44. WSACleanup();
  45. #endif
  46. return 0;
  47. }