incubator-bluesky-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mabo...@apache.org
Subject svn commit: r830421 [24/47] - in /incubator/bluesky/webpage/files/html/APIdoc: ./ DTUAPI/ TserverAPI/
Date Wed, 28 Oct 2009 01:34:14 GMT
Added: incubator/bluesky/webpage/files/html/APIdoc/TserverAPI/classCAdminServer.html
URL: http://svn.apache.org/viewvc/incubator/bluesky/webpage/files/html/APIdoc/TserverAPI/classCAdminServer.html?rev=830421&view=auto
==============================================================================
--- incubator/bluesky/webpage/files/html/APIdoc/TserverAPI/classCAdminServer.html (added)
+++ incubator/bluesky/webpage/files/html/APIdoc/TserverAPI/classCAdminServer.html Wed Oct 28 01:33:45 2009
@@ -0,0 +1,2616 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
+<title>RealClass: CAdminServer Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.0 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>CAdminServer Class Reference</h1><!-- doxytag: class="CAdminServer" -->
+<p><code>#include &lt;<a class="el" href="adminserver_8h_source.html">adminserver.h</a>&gt;</code></p>
+
+<p><a href="classCAdminServer-members.html">List of all members.</a></p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#ac2cabf6387143ca45677b758567d2d6d">Init</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a0b7a33c49b16ac8d6cda34a076887248">CAdminServer</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a45f873e9825f76facc136e0aef83710b">~CAdminServer</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="stdafx_8h.html#ab40a1f154aa44511af7f97b88296f7d3">BOOL</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a65b786f5a1a766807b922c04d0b2efc0">ParseRequest</a> (<a class="el" href="structCRCLMSG.html">CRCLMSG</a> *pM, int event, <a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> s, <a class="el" href="stdafx_8h.html#ab40a1f154aa44511af7f97b88296f7d3">BOOL</a> &amp;bKeepAlive)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#ae4bebd8ba620e80aff00662d9b048db7">GotConnection</a> (<a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a>, char *, int)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#aa312659cbc69a1b0564998cb970ab5a9">Disconnect</a> (<a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> s)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a0859f09ebd0350289529e781790ae5ff">rclGetIPSameA</a> (char *ClientIP, char *MCUIP)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a69677ee5d63ec7fa369d4293dec852a5">rclGetIPSame</a> (char *ClientIP, char *MCUIP)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a3491113768c278bed308ac6fb6e684a6">rclChooseMCU</a> (<a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a> cid, <a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a> gid, <a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> *ps, char *ip, <a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a> *id)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a47e1e279d3002ea92916bff07b7ea312">rclSeMCULeaveGroup</a> (<a class="el" href="structCRCLSeMCULeaveGroup.html">CRCLSeMCULeaveGroup</a> *pMSG, <a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> s)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a57cbec02abe891522286efbf538e54ad">rclSeMCULeaveGroupLogout</a> (<a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a> SeMCUID, <a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> s)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a2cf7c00dd79900df5c15277033c1d772">rclSeMCUJoinGroup</a> (<a class="el" href="structCRCLSeMCUJoinGroup.html">CRCLSeMCUJoinGroup</a> *pMSG, <a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> s)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#ad277798d853681371d18d6ff391b5ab0">rclSeMCUGetGroupInfo</a> (<a class="el" href="structCRCLSeMCUGetGroupInfo.html">CRCLSeMCUGetGroupInfo</a> *pMSG, <a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> s)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a359b7edf9c4bedb51d3bf62bcc8108cc">rclSeMCULogout</a> (<a class="el" href="structCRCLSeMCULogout.html">CRCLSeMCULogout</a> *pMSG, <a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> s)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#ad66f62d2f3e0b0454586a37db0db045a">rclSeMCULogin</a> (<a class="el" href="structCRLCSeMCULogin.html">CRLCSeMCULogin</a> *pMSG, <a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> s, int event)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#aa5b2c063b205e6cafb9d97f596d5d7b8">rclTeacherGetClientList</a> (<a class="el" href="structCRCLTeacherGetClientList.html">CRCLTeacherGetClientList</a> *pMSG, <a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> s)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#afe081c8d17a9f0cd06aedcc476bc2e0d">rclTeacherSwitchMode</a> (<a class="el" href="structCRCLTeacherSwitchMode.html">CRCLTeacherSwitchMode</a> *pMSG, <a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> s)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a05b60bd26b164fba5290cef0bc844eaf">rclTeacherCancelClientFocus</a> (<a class="el" href="structCRCLTeacherCancelClientFocus.html">CRCLTeacherCancelClientFocus</a> *pMSG, <a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> s)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a2393220c9816d8f4e84eeb7985379ce3">rclTeacherAllowClientFocus</a> (<a class="el" href="structCRCLTeacherAllowClientFocus.html">CRCLTeacherAllowClientFocus</a> *pMSG, <a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> s)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a6573d09e65db077e1fc7288bd4a78aa1">rclResponseInfo</a> (char *info)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a79b5e186a8a89c6a1d7f143075a2a346">rclClientGetClientInfo</a> (<a class="el" href="structCRCLClientGetClientInfo.html">CRCLClientGetClientInfo</a> *pMSG, <a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> s)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#ae7947dc496777474711f5a4153164c42">rclClientGetGroupInfo</a> (<a class="el" href="structCRCLClientGetCroupInfo.html">CRCLClientGetCroupInfo</a> *pMSG, <a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> s)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#ad4c95ec42f408acddf29968c2287d235">rclPopPushID</a> (<a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a> id)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#aaa0210eea429eab4b68eee015de56ff1">InitializeIDList</a> (<a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a> IDCount)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a53a72a6daa3e1885b80e1f39cdcda931">rclResponseError</a> (<a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a> MSGType, <a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> s, <a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a> et)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#adc2f6e46b451d1034451b5af60bcf421">rclClientTextBroadcast</a> (<a class="el" href="structCRCLClientTextBroadcast.html">CRCLClientTextBroadcast</a> *pMSG, <a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> s)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#aedfbc01b9e554dcb707dbf281823cbb5">rclClientDestroyFocus</a> (<a class="el" href="structCRCLClientDestroyFocus.html">CRCLClientDestroyFocus</a> *pMSG, <a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> s)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a99fcea65a9903579fcbeec0708a2db42">rclClientApplyFocus</a> (<a class="el" href="structCRCLClientApplyFocus.html">CRCLClientApplyFocus</a> *pMSG, <a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> s)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a3312c8f5d0d4fe1016b8f1b4976e5d61">rclTeacherTextBroadcast</a> (<a class="el" href="structCRCLTeacherTextBroadcast.html">CRCLTeacherTextBroadcast</a> *pMSG, <a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> s)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#aece8c41035fecf6f875f11d1d4deb1e9">rclMCULeaveGroup</a> (<a class="el" href="structCRCLMCULeaveGroup.html">CRCLMCULeaveGroup</a> *pMSG, <a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> s)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a10720c0818935f2e76128f78cbeae7fa">rclSendResponse</a> (char *pbuf, <a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a> len, <a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> *s, <a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a> nums)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#af4a19d8af2da798b947ff887780fa5b8">rclMakePacket</a> (char *pResponse, char *pRes, <a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a> len)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a02419c00f5ce2d6e7e0210313a9dbc31">rclClientLogout</a> (<a class="el" href="structCRCLClientLogout.html">CRCLClientLogout</a> *pMSG, <a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> s)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a05c1294d3b109996bf997a285b236348">rclClientLeaveGroup</a> (<a class="el" href="structCRCLClientLeaveGroup.html">CRCLClientLeaveGroup</a> *pMSG, <a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> s)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#addc94cead6242b90ffe35fe45106dce2">rclClientJoinGroup</a> (<a class="el" href="structCRCLClientJoinInGroup.html">CRCLClientJoinInGroup</a> *pMSG, <a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> s)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a2816171c34361c5af181e40bbe16b208">rclTeacherLeaveGroup</a> (<a class="el" href="structCRCLDestroyGroup.html">CRCLDestroyGroup</a> *pMSG, <a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> s)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#af84939818baff1febb992d8a20cdd7b5">rclTeacherCreateGroup</a> (<a class="el" href="structCRCLCreateGroup.html">CRCLCreateGroup</a> *pMSG, <a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> s)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a841436092f60bb91d2835aa04aaa9faf">rclClientLogin</a> (<a class="el" href="structCRCLClientLogin.html">CRCLClientLogin</a> *pMSG, <a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> s, int event)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a69bb8326976f3eed49ed72ba2df4fdfa">rclMCULogout</a> (<a class="el" href="structCRCLMCULogout.html">CRCLMCULogout</a> *pMSG, <a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> s)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#ac03a119724baf09c0ae3fe42468c46e9">rclMCULogin</a> (<a class="el" href="structCRCLMCULogin.html">CRCLMCULogin</a> *pMSG, <a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> s, int event)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a6dc277bad4e76dee08db7c5bb0aa336c">rclTeacherLogout</a> (<a class="el" href="structCRCLTeacherLogout.html">CRCLTeacherLogout</a> *pMSG, <a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> s)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a527df754bdf1320976a9ef6af11e517b">rclTeacherLogin</a> (<a class="el" href="structCRCLTeacherLogin.html">CRCLTeacherLogin</a> *pMSG, <a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> s, int event)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#afcd813723f4ad8d2dc68f2b3b4a55fce">rclTeacherChat</a> (<a class="el" href="structCRCLTeacherChat.html">CRCLTeacherChat</a> *pMSG, <a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> s)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#af3ee42d707ff2c207eeda7e1387d75b2">pingtest</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a091edd7c11c39203bda84b5ec3025f17">statistics</a> (int signo)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">unsigned short&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a74ae6032ddbdb65ed0386aca22762582">cal_chksum</a> (unsigned short *addr, int len)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a799e9d2859759ce1a0eaba2f8064b1d7">pack</a> (int pack_no)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a6d21a54d972f27b5e5535e430c3baeec">send_packet</a> (void)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a1c13300d924cecebdc81a2fc88efb20a">recv_packet</a> (void)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a67872d1e7fee2f46a990a9c31e8b22ca">unpack</a> (char *buf, int len)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a05becaf0552aa2da065bc4364f314ae1">tv_sub</a> (struct timeval *out, struct timeval *in)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a8fc0aa9eb47c296926614e8b225522b1">rclShowTeacherInfo</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#ab06c9c8170be84e55cacea78e62654ab">rclShowUserInfo</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a32101424064ff161068d2dfaff450c37">rclShowMCUInfo</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a1e08e51559723b29f3a57d1cb3c9aa1d">rclShowSeMCUInfo</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#abe70db70ad7f3b686da9d9d18afe4efa">rclShowRoomInfo</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#aa176b756e74db17b27c25f7a6b82f723">rclShutdown</a> ()</td></tr>
+<tr><td colspan="2"><h2>Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a6a3233f4e41a70d46848314692173402">rclMCUChoose</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">MCU choose mode.  <a href="#a6a3233f4e41a70d46848314692173402"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#acb049301a2b6af2006f92fee9244988d">rclCurrentNum</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">current user number of a classroom  <a href="#acb049301a2b6af2006f92fee9244988d"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a7a01405c003c37349d558d500aed9a8d">rclMaxNum</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">max user number in a classroom  <a href="#a7a01405c003c37349d558d500aed9a8d"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#ad8e5f3ae31e2f7f2598be331ab0e234f">rclAverageNum</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a28f0938fecac208bd56ef8cf43082e0e">sum</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a3f1bd4fb8c717217962234de3ddf7498">count</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="stdafx_8h.html#ab40a1f154aa44511af7f97b88296f7d3">BOOL</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a12b42d7997029a0a1ee608517cd7e8fd">bRun</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a748006c4f6b738d9a6660ba1e7a354aa">rclSThreadEvent</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a0efef6cf8d14668406b6d5a32ac6c18f">rclSendThreadID</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="adminserver_8h.html#a8cbb4c2dd7c618b6264455f472cd35b3">rclUserList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#afb64500d405f811c5b9745900fcb88de">UserList</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="adminserver_8h.html#aa8bcab6b57c121da45e553ca936046f7">rclTeacherList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a39945d9b748bced9f607d4a763a0001d">TeacherList</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="adminserver_8h.html#ab41e671f5815de3a03cd7c2e5d215374">rclMCUList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a148c304a2ace7fd29836af9d420c100d">MCUList</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="adminserver_8h.html#aad924bac47a7aed6663e0cff40f6eef3">rclSeMCUList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#ac19181ffa311456416acb9653567e8d3">SeMCUList</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="adminserver_8h.html#ae7c1fbb368300bb792af04bee03843ab">rclRoomList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a0f0169e38d668c8553fc9df89deafd33">RoomList</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="adminserver_8h.html#a97c1fd6583407feb1331918887267fca">rclIPList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a4b73b41f3b79aacb168c95a33309e1d6">IPList</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="adminserver_8h.html#a97c1fd6583407feb1331918887267fca">rclIPList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a472d2ca89ec2704d710f738f6e4ae3f3">IPList2</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="adminserver_8h.html#ac11052c1df25d831f0dbd5fc50c75477">rclIDList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a87167ca5e3f43cbc353cd2c8eaae85b6">IDList</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a4d8d49498c8ac67b9069a59fda44526b">ListenPort</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a1d94520004acb7bfe725ce93f129b287">MaxOnline</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a5312648aafb629f3081f8a9fd3cc6661">MaxTeacherOnline</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#ac7072a288438a9d538b0504cebc2382c">MaxStudentOnline</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a2b2fd873dcf64173c7c402f7648c3056">MCUChoose</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a293e17f6a41f3b07841fad57978e1460">ClientTalk</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#af31c755fd1ae1f45da4ac01fbea404a4">ReplaceText</a> [1024]</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCMultiComm.html">CMultiComm</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a1ef242d7264145042217f095be609fb3">m_accept</a> [THREADCOUNT]</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCListenComm.html">CListenComm</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#aa3180b1f90a339dd08f7dcef920ee4d5">m_listen</a></td></tr>
+<tr><td colspan="2"><h2>Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a33822baa4e582767265fe1a86bf23498">rclSendThreadHandle</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">send_thread handle  <a href="#a33822baa4e582767265fe1a86bf23498"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="adminserver_8h.html#aa5008971e6b97ccbfb1b8b654731d970">NodeChangeNotify</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a1277d06e50fec0b3316730f9414f71d5">NodeInfoOut</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">node information out  <a href="#a1277d06e50fec0b3316730f9414f71d5"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">JMutex&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#ad7c043ff805ef8ca34a05fc1bec5a8ef">umu</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">user list mutex  <a href="#ad7c043ff805ef8ca34a05fc1bec5a8ef"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">JMutex&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a85464c6f39158c3c61197264ca12b993">tmu</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">teacher list mutex  <a href="#a85464c6f39158c3c61197264ca12b993"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">JMutex&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a50dd354dc5fef0d7a90bd154584f1423">mmu</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Main control unit list mutex.  <a href="#a50dd354dc5fef0d7a90bd154584f1423"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">JMutex&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a8874dbb5473774bb7d5176a1b0ed311a">smu</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">second MCU list mutex  <a href="#a8874dbb5473774bb7d5176a1b0ed311a"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">JMutex&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a59410b72c69ef362f2edfd6968ea12bb">rmu</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">class room list mutex  <a href="#a59410b72c69ef362f2edfd6968ea12bb"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">JMutex&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#ad603212755b2cc2bbedda98c04fc0890">imu</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">IP address list mutex.  <a href="#ad603212755b2cc2bbedda98c04fc0890"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">JMutex&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a3f8ffadd68d107fb68aa35070b51cace">dmu</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ID list mutex.  <a href="#a3f8ffadd68d107fb68aa35070b51cace"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">JMutex&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a25353ddf516281f875ff35bd1eff54b3">Jtext_layoutC</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">text layout control mutex  <a href="#a25353ddf516281f875ff35bd1eff54b3"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">JMutex&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#ab7a4ff237e6622a6826db19f6fc2a2f7">Jtext_layoutT</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">text layout mutex  <a href="#ab7a4ff237e6622a6826db19f6fc2a2f7"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a2c6c2df547bef1fa97ca00e728366ca1">rclSysMax</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">max number for system  <a href="#a2c6c2df547bef1fa97ca00e728366ca1"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a80ecc812ae5e47ebdece34118d730ef7">rclTeacherMax</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">max teacher number  <a href="#a80ecc812ae5e47ebdece34118d730ef7"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#aab3c99a41c955429024291871d8361d8">rclStudentMax</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">max student number  <a href="#aab3c99a41c955429024291871d8361d8"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a94e67aab7b60025e3a9aa6630434dda8">rclGroupMax</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">max group number  <a href="#a94e67aab7b60025e3a9aa6630434dda8"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCLisSocket.html">CLisSocket</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#af7e8de00a015f7ec6ce30dcefd126b38">m_listemsocket</a></td></tr>
+<tr><td colspan="2"><h2>Friends</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#aef70f92cd5f74069077341527debbf13">CLisSocket</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">class&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCAdminServer.html#a9442bcd761dbb9f851d96614de28f676">CClientSocket</a></td></tr>
+</table>
+<hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>adminstrate the Tserver class</p>
+<hr/><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a0b7a33c49b16ac8d6cda34a076887248"></a><!-- doxytag: member="CAdminServer::CAdminServer" ref="a0b7a33c49b16ac8d6cda34a076887248" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">CAdminServer::CAdminServer </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p><a class="el" href="classCAdminServer.html">CAdminServer</a> constructor </p>
+
+</div>
+</div>
+<a class="anchor" id="a45f873e9825f76facc136e0aef83710b"></a><!-- doxytag: member="CAdminServer::~CAdminServer" ref="a45f873e9825f76facc136e0aef83710b" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">CAdminServer::~CAdminServer </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td><code> [virtual]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p><a class="el" href="classCAdminServer.html">CAdminServer</a> deconstructor </p>
+
+</div>
+</div>
+<hr/><h2>Member Function Documentation</h2>
+<a class="anchor" id="a74ae6032ddbdb65ed0386aca22762582"></a><!-- doxytag: member="CAdminServer::cal_chksum" ref="a74ae6032ddbdb65ed0386aca22762582" args="(unsigned short *addr, int len)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">unsigned short CAdminServer::cal_chksum </td>
+          <td>(</td>
+          <td class="paramtype">unsigned short *&nbsp;</td>
+          <td class="paramname"> <em>addr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>len</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>icmp checksum </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>*addr</em>&nbsp;</td><td>address </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>length of address </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="aa312659cbc69a1b0564998cb970ab5a9"></a><!-- doxytag: member="CAdminServer::Disconnect" ref="aa312659cbc69a1b0564998cb970ab5a9" args="(SOCKET s)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int CAdminServer::Disconnect </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a>&nbsp;</td>
+          <td class="paramname"> <em>s</em></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>diconnect certain node by checking the socket handle in IP list </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>socket handle </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ae4bebd8ba620e80aff00662d9b048db7"></a><!-- doxytag: member="CAdminServer::GotConnection" ref="ae4bebd8ba620e80aff00662d9b048db7" args="(SOCKET, char *, int)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int CAdminServer::GotConnection </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a>&nbsp;</td>
+          <td class="paramname"> <em>s</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *&nbsp;</td>
+          <td class="paramname"> <em>ip</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>port</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>add the node into IPlist if it is not added </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>socket handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>ip</em>&nbsp;</td><td>ip address </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>port</em>&nbsp;</td><td>port number </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ac2cabf6387143ca45677b758567d2d6d"></a><!-- doxytag: member="CAdminServer::Init" ref="ac2cabf6387143ca45677b758567d2d6d" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int CAdminServer::Init </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>function initialize everything </p>
+
+</div>
+</div>
+<a class="anchor" id="aaa0210eea429eab4b68eee015de56ff1"></a><!-- doxytag: member="CAdminServer::InitializeIDList" ref="aaa0210eea429eab4b68eee015de56ff1" args="(DWORD IDCount)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int CAdminServer::InitializeIDList </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a>&nbsp;</td>
+          <td class="paramname"> <em>IDCount</em></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>initialize ID list </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>IDCount</em>&nbsp;</td><td>total ID numbers </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a799e9d2859759ce1a0eaba2f8064b1d7"></a><!-- doxytag: member="CAdminServer::pack" ref="a799e9d2859759ce1a0eaba2f8064b1d7" args="(int pack_no)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int CAdminServer::pack </td>
+          <td>(</td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>pack_no</em></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>pack a icmp package, return the packsize </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>pack_no</em>&nbsp;</td><td>package sequence </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a65b786f5a1a766807b922c04d0b2efc0"></a><!-- doxytag: member="CAdminServer::ParseRequest" ref="a65b786f5a1a766807b922c04d0b2efc0" args="(CRCLMSG *pM, int event, SOCKET s, BOOL &amp;bKeepAlive)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="stdafx_8h.html#ab40a1f154aa44511af7f97b88296f7d3">BOOL</a> CAdminServer::ParseRequest </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structCRCLMSG.html">CRCLMSG</a> *&nbsp;</td>
+          <td class="paramname"> <em>pM</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>event</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a>&nbsp;</td>
+          <td class="paramname"> <em>s</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="stdafx_8h.html#ab40a1f154aa44511af7f97b88296f7d3">BOOL</a> &amp;&nbsp;</td>
+          <td class="paramname"> <em>bKeepAlive</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>parse request to determine actions like create classroom </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>pM</em>&nbsp;</td><td>message content </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>event</em>&nbsp;</td><td>event handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>socket handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>bkeepAlive</em>&nbsp;</td><td>flag shows whether it is alive </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="af3ee42d707ff2c207eeda7e1387d75b2"></a><!-- doxytag: member="CAdminServer::pingtest" ref="af3ee42d707ff2c207eeda7e1387d75b2" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void CAdminServer::pingtest </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>test the QOS of server </p>
+
+</div>
+</div>
+<a class="anchor" id="a3491113768c278bed308ac6fb6e684a6"></a><!-- doxytag: member="CAdminServer::rclChooseMCU" ref="a3491113768c278bed308ac6fb6e684a6" args="(DWORD cid, DWORD gid, SOCKET *ps, char *ip, DWORD *id)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int CAdminServer::rclChooseMCU </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a>&nbsp;</td>
+          <td class="paramname"> <em>cid</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a>&nbsp;</td>
+          <td class="paramname"> <em>gid</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> *&nbsp;</td>
+          <td class="paramname"> <em>ps</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *&nbsp;</td>
+          <td class="paramname"> <em>ip</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a> *&nbsp;</td>
+          <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>choose Main Control Unit </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>cid</em>&nbsp;</td><td>student id </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>gid</em>&nbsp;</td><td>group id </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>*ps</em>&nbsp;</td><td>socket array hold sockets of clients of MCU </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>*ip</em>&nbsp;</td><td>string hold ip address </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>*id</em>&nbsp;</td><td>array hold MCU/assistant MCU id </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a99fcea65a9903579fcbeec0708a2db42"></a><!-- doxytag: member="CAdminServer::rclClientApplyFocus" ref="a99fcea65a9903579fcbeec0708a2db42" args="(CRCLClientApplyFocus *pMSG, SOCKET s)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int CAdminServer::rclClientApplyFocus </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structCRCLClientApplyFocus.html">CRCLClientApplyFocus</a> *&nbsp;</td>
+          <td class="paramname"> <em>pMSG</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a>&nbsp;</td>
+          <td class="paramname"> <em>s</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>handle situation when teacher switch teaching mode </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>*pMSG</em>&nbsp;</td><td><a class="el" href="structCRCLTeacherSwitchMode.html">CRCLTeacherSwitchMode</a> struct, recording teacher information </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>socket of the teacher </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="aedfbc01b9e554dcb707dbf281823cbb5"></a><!-- doxytag: member="CAdminServer::rclClientDestroyFocus" ref="aedfbc01b9e554dcb707dbf281823cbb5" args="(CRCLClientDestroyFocus *pMSG, SOCKET s)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int CAdminServer::rclClientDestroyFocus </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structCRCLClientDestroyFocus.html">CRCLClientDestroyFocus</a> *&nbsp;</td>
+          <td class="paramname"> <em>pMSG</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a>&nbsp;</td>
+          <td class="paramname"> <em>s</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>handle situation when student cancel focus </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>*pMSG</em>&nbsp;</td><td><a class="el" href="structCRCLClientDestroyFocus.html">CRCLClientDestroyFocus</a> struct, recording focus student information </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>socket of the focus student </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a79b5e186a8a89c6a1d7f143075a2a346"></a><!-- doxytag: member="CAdminServer::rclClientGetClientInfo" ref="a79b5e186a8a89c6a1d7f143075a2a346" args="(CRCLClientGetClientInfo *pMSG, SOCKET s)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int CAdminServer::rclClientGetClientInfo </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structCRCLClientGetClientInfo.html">CRCLClientGetClientInfo</a> *&nbsp;</td>
+          <td class="paramname"> <em>pMSG</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a>&nbsp;</td>
+          <td class="paramname"> <em>s</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>student get information of another students </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>*pMSG</em>&nbsp;</td><td><a class="el" href="structCRCLClientGetClientInfo.html">CRCLClientGetClientInfo</a> struct, hold students information </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>socket handle who wants to know other students info </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ae7947dc496777474711f5a4153164c42"></a><!-- doxytag: member="CAdminServer::rclClientGetGroupInfo" ref="ae7947dc496777474711f5a4153164c42" args="(CRCLClientGetCroupInfo *pMSG, SOCKET s)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int CAdminServer::rclClientGetGroupInfo </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structCRCLClientGetCroupInfo.html">CRCLClientGetCroupInfo</a> *&nbsp;</td>
+          <td class="paramname"> <em>pMSG</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a>&nbsp;</td>
+          <td class="paramname"> <em>s</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>students get the classroom/ group information </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>*pMSG</em>&nbsp;</td><td><a class="el" href="structCRCLClientGetCroupInfo.html">CRCLClientGetCroupInfo</a> struct, contain information of the group </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>socket handle of the student who wants to know the groupinfo </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="addc94cead6242b90ffe35fe45106dce2"></a><!-- doxytag: member="CAdminServer::rclClientJoinGroup" ref="addc94cead6242b90ffe35fe45106dce2" args="(CRCLClientJoinInGroup *pMSG, SOCKET s)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int CAdminServer::rclClientJoinGroup </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structCRCLClientJoinInGroup.html">CRCLClientJoinInGroup</a> *&nbsp;</td>
+          <td class="paramname"> <em>pMSG</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a>&nbsp;</td>
+          <td class="paramname"> <em>s</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>handle situation when student join in a classroom </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>*pMSG</em>&nbsp;</td><td><a class="el" href="structCRCLClientJoinInGroup.html">CRCLClientJoinInGroup</a> struct, recording classroom infomaiton </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>socket of the student </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a05c1294d3b109996bf997a285b236348"></a><!-- doxytag: member="CAdminServer::rclClientLeaveGroup" ref="a05c1294d3b109996bf997a285b236348" args="(CRCLClientLeaveGroup *pMSG, SOCKET s)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int CAdminServer::rclClientLeaveGroup </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structCRCLClientLeaveGroup.html">CRCLClientLeaveGroup</a> *&nbsp;</td>
+          <td class="paramname"> <em>pMSG</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a>&nbsp;</td>
+          <td class="paramname"> <em>s</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>handle situation when student leave a classroom </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>*pMSG</em>&nbsp;</td><td><a class="el" href="structCRCLClientLeaveGroup.html">CRCLClientLeaveGroup</a> struct, recording classroom infomaiton </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>socket of the student </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a841436092f60bb91d2835aa04aaa9faf"></a><!-- doxytag: member="CAdminServer::rclClientLogin" ref="a841436092f60bb91d2835aa04aaa9faf" args="(CRCLClientLogin *pMSG, SOCKET s, int event)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int CAdminServer::rclClientLogin </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structCRCLClientLogin.html">CRCLClientLogin</a> *&nbsp;</td>
+          <td class="paramname"> <em>pMSG</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a>&nbsp;</td>
+          <td class="paramname"> <em>s</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>event</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>handle situation when a student log out </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>*pMSG</em>&nbsp;</td><td><a class="el" href="structCRCLClientLogin.html">CRCLClientLogin</a> struct, recording student login infomaiton </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>socket of the log in student </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>event</em>&nbsp;</td><td>event </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a02419c00f5ce2d6e7e0210313a9dbc31"></a><!-- doxytag: member="CAdminServer::rclClientLogout" ref="a02419c00f5ce2d6e7e0210313a9dbc31" args="(CRCLClientLogout *pMSG, SOCKET s)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int CAdminServer::rclClientLogout </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structCRCLClientLogout.html">CRCLClientLogout</a> *&nbsp;</td>
+          <td class="paramname"> <em>pMSG</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a>&nbsp;</td>
+          <td class="paramname"> <em>s</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>handle situation when a student log out </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>*pMSG</em>&nbsp;</td><td><a class="el" href="structCRCLClientLogout.html">CRCLClientLogout</a> struct, recording student logout infomaiton </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>socket of the log out student </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>event</em>&nbsp;</td><td>event </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="adc2f6e46b451d1034451b5af60bcf421"></a><!-- doxytag: member="CAdminServer::rclClientTextBroadcast" ref="adc2f6e46b451d1034451b5af60bcf421" args="(CRCLClientTextBroadcast *pMSG, SOCKET s)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int CAdminServer::rclClientTextBroadcast </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structCRCLClientTextBroadcast.html">CRCLClientTextBroadcast</a> *&nbsp;</td>
+          <td class="paramname"> <em>pMSG</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a>&nbsp;</td>
+          <td class="paramname"> <em>s</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>handle situation when students communicate with text </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>*pMSG</em>&nbsp;</td><td><a class="el" href="structCRCLClientTextBroadcast.html">CRCLClientTextBroadcast</a> struct, recording boradcast information </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>socket of the student who input text </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a69677ee5d63ec7fa369d4293dec852a5"></a><!-- doxytag: member="CAdminServer::rclGetIPSame" ref="a69677ee5d63ec7fa369d4293dec852a5" args="(char *ClientIP, char *MCUIP)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int CAdminServer::rclGetIPSame </td>
+          <td>(</td>
+          <td class="paramtype">char *&nbsp;</td>
+          <td class="paramname"> <em>ClientIP</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *&nbsp;</td>
+          <td class="paramname"> <em>MCUIP</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>judge the resemblance between student and MCU by ip address </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>*ClientIP</em>&nbsp;</td><td>student ip address </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>*MCUIP</em>&nbsp;</td><td>MCU ip address </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a0859f09ebd0350289529e781790ae5ff"></a><!-- doxytag: member="CAdminServer::rclGetIPSameA" ref="a0859f09ebd0350289529e781790ae5ff" args="(char *ClientIP, char *MCUIP)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int CAdminServer::rclGetIPSameA </td>
+          <td>(</td>
+          <td class="paramtype">char *&nbsp;</td>
+          <td class="paramname"> <em>ClientIP</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *&nbsp;</td>
+          <td class="paramname"> <em>MCUIP</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af4a19d8af2da798b947ff887780fa5b8"></a><!-- doxytag: member="CAdminServer::rclMakePacket" ref="af4a19d8af2da798b947ff887780fa5b8" args="(char *pResponse, char *pRes, DWORD len)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int CAdminServer::rclMakePacket </td>
+          <td>(</td>
+          <td class="paramtype">char *&nbsp;</td>
+          <td class="paramname"> <em>pResponse</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *&nbsp;</td>
+          <td class="paramname"> <em>pRes</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a>&nbsp;</td>
+          <td class="paramname"> <em>len</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>function facilitate copying message to certeain struct.msg </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>*pResponse</em>&nbsp;</td><td>destination string </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>*pRes</em>&nbsp;</td><td>source string </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>length of copying </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="aece8c41035fecf6f875f11d1d4deb1e9"></a><!-- doxytag: member="CAdminServer::rclMCULeaveGroup" ref="aece8c41035fecf6f875f11d1d4deb1e9" args="(CRCLMCULeaveGroup *pMSG, SOCKET s)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int CAdminServer::rclMCULeaveGroup </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structCRCLMCULeaveGroup.html">CRCLMCULeaveGroup</a> *&nbsp;</td>
+          <td class="paramname"> <em>pMSG</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a>&nbsp;</td>
+          <td class="paramname"> <em>s</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>handle situation when MCU leave </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>*pMSG</em>&nbsp;</td><td><a class="el" href="structCRCLMCULeaveGroup.html">CRCLMCULeaveGroup</a> struct, recording MCU infomaiton </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>socket of the MCU </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ac03a119724baf09c0ae3fe42468c46e9"></a><!-- doxytag: member="CAdminServer::rclMCULogin" ref="ac03a119724baf09c0ae3fe42468c46e9" args="(CRCLMCULogin *pMSG, SOCKET s, int event)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int CAdminServer::rclMCULogin </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structCRCLMCULogin.html">CRCLMCULogin</a> *&nbsp;</td>
+          <td class="paramname"> <em>pMSG</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a>&nbsp;</td>
+          <td class="paramname"> <em>s</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>event</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>handle situation when MCU log in </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>*pMSG</em>&nbsp;</td><td><a class="el" href="structCRCLMCULogin.html">CRCLMCULogin</a> struct, recording MCU login infomaiton </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>socket of the log in MCU </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>event</em>&nbsp;</td><td>event </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a69bb8326976f3eed49ed72ba2df4fdfa"></a><!-- doxytag: member="CAdminServer::rclMCULogout" ref="a69bb8326976f3eed49ed72ba2df4fdfa" args="(CRCLMCULogout *pMSG, SOCKET s)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int CAdminServer::rclMCULogout </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structCRCLMCULogout.html">CRCLMCULogout</a> *&nbsp;</td>
+          <td class="paramname"> <em>pMSG</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a>&nbsp;</td>
+          <td class="paramname"> <em>s</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>handle situation when MCU log out </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>*pMSG</em>&nbsp;</td><td><a class="el" href="structCRCLMCULogout.html">CRCLMCULogout</a> struct, recording MCU logout infomaiton </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>socket of the log out MCU </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ad4c95ec42f408acddf29968c2287d235"></a><!-- doxytag: member="CAdminServer::rclPopPushID" ref="ad4c95ec42f408acddf29968c2287d235" args="(DWORD id)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a> CAdminServer::rclPopPushID </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a>&nbsp;</td>
+          <td class="paramname"> <em>id</em></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>push and pop id into ID list, if id already exsist in ID list, release id mutex, if not pop the front id </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>id number </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a53a72a6daa3e1885b80e1f39cdcda931"></a><!-- doxytag: member="CAdminServer::rclResponseError" ref="a53a72a6daa3e1885b80e1f39cdcda931" args="(DWORD MSGType, SOCKET s, DWORD et)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int CAdminServer::rclResponseError </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a>&nbsp;</td>
+          <td class="paramname"> <em>MSGType</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a>&nbsp;</td>
+          <td class="paramname"> <em>s</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a>&nbsp;</td>
+          <td class="paramname"> <em>et</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>send error message to certain socket </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>MSGType</em>&nbsp;</td><td>message type </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>socket handle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>et</em>&nbsp;</td><td>result of return message </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a6573d09e65db077e1fc7288bd4a78aa1"></a><!-- doxytag: member="CAdminServer::rclResponseInfo" ref="a6573d09e65db077e1fc7288bd4a78aa1" args="(char *info)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void CAdminServer::rclResponseInfo </td>
+          <td>(</td>
+          <td class="paramtype">char *&nbsp;</td>
+          <td class="paramname"> <em>info</em></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad277798d853681371d18d6ff391b5ab0"></a><!-- doxytag: member="CAdminServer::rclSeMCUGetGroupInfo" ref="ad277798d853681371d18d6ff391b5ab0" args="(CRCLSeMCUGetGroupInfo *pMSG, SOCKET s)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int CAdminServer::rclSeMCUGetGroupInfo </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structCRCLSeMCUGetGroupInfo.html">CRCLSeMCUGetGroupInfo</a> *&nbsp;</td>
+          <td class="paramname"> <em>pMSG</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a>&nbsp;</td>
+          <td class="paramname"> <em>s</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>assistant MCU achieve group information </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>*pMSG</em>&nbsp;</td><td><a class="el" href="structCRCLSeMCUGetGroupInfo.html">CRCLSeMCUGetGroupInfo</a> struct, contain group information </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>socket handle of assistant MCU </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a2cf7c00dd79900df5c15277033c1d772"></a><!-- doxytag: member="CAdminServer::rclSeMCUJoinGroup" ref="a2cf7c00dd79900df5c15277033c1d772" args="(CRCLSeMCUJoinGroup *pMSG, SOCKET s)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int CAdminServer::rclSeMCUJoinGroup </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structCRCLSeMCUJoinGroup.html">CRCLSeMCUJoinGroup</a> *&nbsp;</td>
+          <td class="paramname"> <em>pMSG</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a>&nbsp;</td>
+          <td class="paramname"> <em>s</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>assistant MCU join the group </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>*pMSG</em>&nbsp;</td><td><a class="el" href="structCRCLSeMCUJoinGroup.html">CRCLSeMCUJoinGroup</a> struct, contain assitant MCU id and group id </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>socket handle of assistant MCU </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a47e1e279d3002ea92916bff07b7ea312"></a><!-- doxytag: member="CAdminServer::rclSeMCULeaveGroup" ref="a47e1e279d3002ea92916bff07b7ea312" args="(CRCLSeMCULeaveGroup *pMSG, SOCKET s)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int CAdminServer::rclSeMCULeaveGroup </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structCRCLSeMCULeaveGroup.html">CRCLSeMCULeaveGroup</a> *&nbsp;</td>
+          <td class="paramname"> <em>pMSG</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a>&nbsp;</td>
+          <td class="paramname"> <em>s</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>assistant MCU leave group </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>*pMSG</em>&nbsp;</td><td><a class="el" href="structCRCLSeMCULeaveGroup.html">CRCLSeMCULeaveGroup</a> struct, contain assitant MCU id and group id </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>socket handle of assitant MCU </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a57cbec02abe891522286efbf538e54ad"></a><!-- doxytag: member="CAdminServer::rclSeMCULeaveGroupLogout" ref="a57cbec02abe891522286efbf538e54ad" args="(DWORD SeMCUID, SOCKET s)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void CAdminServer::rclSeMCULeaveGroupLogout </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a>&nbsp;</td>
+          <td class="paramname"> <em>SeMCUID</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a>&nbsp;</td>
+          <td class="paramname"> <em>s</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>assistant MCU log out and leave group /param SeMCUID assistant MCU id /param s socket handle of assistant MCU </p>
+
+</div>
+</div>
+<a class="anchor" id="ad66f62d2f3e0b0454586a37db0db045a"></a><!-- doxytag: member="CAdminServer::rclSeMCULogin" ref="ad66f62d2f3e0b0454586a37db0db045a" args="(CRLCSeMCULogin *pMSG, SOCKET s, int event)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int CAdminServer::rclSeMCULogin </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structCRLCSeMCULogin.html">CRLCSeMCULogin</a> *&nbsp;</td>
+          <td class="paramname"> <em>pMSG</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a>&nbsp;</td>
+          <td class="paramname"> <em>s</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>event</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>assistant MCU log in Server </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>*pMSG</em>&nbsp;</td><td><a class="el" href="structCRLCSeMCULogin.html">CRLCSeMCULogin</a> struct, contain information of assistant MCU </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>socket handle of assistant MCU </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>event</em>&nbsp;</td><td>event handle </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a359b7edf9c4bedb51d3bf62bcc8108cc"></a><!-- doxytag: member="CAdminServer::rclSeMCULogout" ref="a359b7edf9c4bedb51d3bf62bcc8108cc" args="(CRCLSeMCULogout *pMSG, SOCKET s)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int CAdminServer::rclSeMCULogout </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structCRCLSeMCULogout.html">CRCLSeMCULogout</a> *&nbsp;</td>
+          <td class="paramname"> <em>pMSG</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a>&nbsp;</td>
+          <td class="paramname"> <em>s</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>assistant MCU log out </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>*pMSG</em>&nbsp;</td><td><a class="el" href="structCRCLSeMCULogout.html">CRCLSeMCULogout</a> struct, contain assistant ID </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>socket handle of assistant MCU </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a10720c0818935f2e76128f78cbeae7fa"></a><!-- doxytag: member="CAdminServer::rclSendResponse" ref="a10720c0818935f2e76128f78cbeae7fa" args="(char *pbuf, DWORD len, SOCKET *s, DWORD nums)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int CAdminServer::rclSendResponse </td>
+          <td>(</td>
+          <td class="paramtype">char *&nbsp;</td>
+          <td class="paramname"> <em>pbuf</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a>&nbsp;</td>
+          <td class="paramname"> <em>len</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="stdafx_8h.html#a8dc8083897335125630f1af5dafd5831">SOCKET</a> *&nbsp;</td>
+          <td class="paramname"> <em>s</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="stdafx_8h.html#ad342ac907eb044443153a22f964bf0af">DWORD</a>&nbsp;</td>
+          <td class="paramname"> <em>nums</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>send certain string to destination in socket array </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>*pbuf</em>&nbsp;</td><td>string buffer </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>length of the string </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>*s</em>&nbsp;</td><td>socket array </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>nums</em>&nbsp;</td><td>total num of the sockets </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a32101424064ff161068d2dfaff450c37"></a><!-- doxytag: member="CAdminServer::rclShowMCUInfo" ref="a32101424064ff161068d2dfaff450c37" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void CAdminServer::rclShowMCUInfo </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>show MCU information </p>
+
+</div>
+</div>
+<a class="anchor" id="abe70db70ad7f3b686da9d9d18afe4efa"></a><!-- doxytag: member="CAdminServer::rclShowRoomInfo" ref="abe70db70ad7f3b686da9d9d18afe4efa" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void CAdminServer::rclShowRoomInfo </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>show classroom information </p>
+
+</div>
+</div>
+<a class="anchor" id="a1e08e51559723b29f3a57d1cb3c9aa1d"></a><!-- doxytag: member="CAdminServer::rclShowSeMCUInfo" ref="a1e08e51559723b29f3a57d1cb3c9aa1d" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void CAdminServer::rclShowSeMCUInfo </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>show assistant MCU information </p>
+
+</div>
+</div>
+<a class="anchor" id="a8fc0aa9eb47c296926614e8b225522b1"></a><!-- doxytag: member="CAdminServer::rclShowTeacherInfo" ref="a8fc0aa9eb47c296926614e8b225522b1" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void CAdminServer::rclShowTeacherInfo </td>
+          <td>(</td>
+          <td class="paramname"></td>
+          <td>&nbsp;)&nbsp;</td>
+          <td></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+<p>show teacher information </p>
+
+</div>
+</div>
+<a class="anchor" id="ab06c9c8170be84e55cacea78e62654ab"></a><!-- doxytag: member="CAdminServer::rclShowUserInfo" ref="ab06c9c8170be84e55cacea78e62654ab" args="()" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>

[... 1168 lines stripped ...]


Mime
View raw message