none
接收Socket字符串的问题 RRS feed

  • 问题

  •      我现在编一个客户端程序,要接收来自服务器端的Socket字符串。我采用一个常规的思路,就是从CSocket类派生一个CMIClientSocket类,然后在视图类里定义CMIClientSocket类的一个指针,接着在手动连接服务器里创建CMIClientSocket类对象。 

          在CMIClientSocket类的OnOnReceive(int nErrorCode) 函数里创建一个接收线程来接收服务器端的Socket字符串(这样做是为了降低主线程的负担)。 

          但同事说采用这种做法如果主线程被堵塞,同样不能触发本事件,应该找一个更合理的处理方法。 

          我不知道更合理的做法是什么,特向大家请教。  
    2008年10月15日 9:08

答案

  • 阻塞主线程,可以创建一个工作线程来做Socket连接,然后把结果通过消息发给主线程。或者在主线程中OnOnReceive的超时时间调短,在间隔添加消息循环。

    2008年10月15日 9:43
    版主
  • 只要主线程不是一直处于死循环中,你这种思路是可以的。

    2008年10月16日 6:14
    版主

全部回复

  • 阻塞主线程,可以创建一个工作线程来做Socket连接,然后把结果通过消息发给主线程。或者在主线程中OnOnReceive的超时时间调短,在间隔添加消息循环。

    2008年10月15日 9:43
    版主
  • 只要主线程不是一直处于死循环中,你这种思路是可以的。

    2008年10月16日 6:14
    版主