服务器读取XML配置文件,上有N条记录,建立N个线程,连接一远程主机,然后客户端连接服务器,寻找一空闲线程,找到后占用该线程时间30秒(期间该线程其他客户端无法使用),发送指令给服务器,服务器接受后转发给远程主机,远程主机返回给服务器,服务器再转给客户端,如果客户端再次发送指令给服务器,又占用该线程30秒,等待远程主机返回。 此服务器如何建立比较好?有代码方案最好. 
类似CTI中的查询空闲线路. 

解决方案 »

  1.   

    考虑:1、是否在客户端和远程主机之间通过P2P进行通信;2、客户端和服务器类似于握手类的动作最好用UDP;3、最大程度减轻服务器的通信负担(在客户端数量比较大时)。
      

  2.   

    Client<->B(需要建立的服务器)<->C(213.23.45.24)
    根据.CONFIG读取配置信息,建立自己的转发服务器A USERA  PASS1  
    B USERB  PASS2  
    C USERB  PASS3  初始化服务器B,建立3个连接B-C,连接到服务器213.23.45.24Client连接B,查找3个连接中的空闲连接,建立连接(占用该连接10秒),然后发送指令给B(占用时间到10秒),B转发给C后,
    C返回给B,然后转发给Client.如果A没有在10秒中内发送指令给B,自动把该通道让给其他的Client
    如何控制10秒,如何建立这个IOCP服务器
      

  3.   

    Client <->B(需要建立的服务器) <->C(213.23.45.24) 
    根据.CONFIG读取配置信息,建立自己的转发服务器 A USERA  PASS1  
    B USERB  PASS2  
    C USERB  PASS3  初始化服务器B,建立3个连接B-C,连接到服务器213.23.45.24 Client连接B,查找3个连接中的空闲连接,建立连接(占用该连接10秒),然后发送指令给B(占用时间到10秒),B转发给C后, 
    C返回给B,然后转发给Client.如果A没有在10秒中内发送指令给B,自动把该通道让给其他的Client 
    如何控制10秒,如何建立这个IOCP服务器
      

  4.   

    为了消除歧义,把代号改了一点:A(Client) <->B(需要建立的服务器) <->C(213.23.45.24) 
    根据.CONFIG读取配置信息,建立自己的转发服务器 
    B-C的3个长连接的配置:
    T1 USER1  PASS1  
    T2 USER2  PASS2  
    T3 USER3  PASS3  初始化服务器B,建立3个连接T1/T2/T3(B-C),连接到C(服务器213.23.45.24)A连接B,查找3个连接中的空闲连接,建立连接(占用该连接10秒),然后发送指令给B(占用时间到10秒),B转发给C后,
    ——这个机制好像有点问题,A连接B,与T1/T2/T3是否有空闲无关,A始终要连的,只是在n秒内如果通道一直没有空闲,则B返回无可用通道信息给A,再断开
    C返回给B,然后转发给A.如果A没有在10秒中内发送指令给B,自动把该通道让给其他的A(Client)如何控制10秒,如何建立这个IOCP服务器