软件使用TCP客户端连接服务器。。
在调试的时候,发现,如果服务器没有打开侦听端口,则下面这行代码要等待很久,才会执行到下一行。。m_SockComm->Connect(str,m_nIPPortNumber)
请问各位朋友,有什么办法可以解决吗?

解决方案 »

  1.   

    TCP默认的连接超时时间比较长。
    而且socket连接默认的是阻塞模式,你可以讲其改为非阻塞模式,再计算超时。
    http://blog.sina.com.cn/s/blog_4a6151550100xirf.html
      

  2.   

    2楼给的链接里面不就有示例代码嘛
    只不过看你那行代码貌似用的是CSocket,说实话,我从来不用
      

  3.   


    对呀,我用的是CSocket啊,,是在MFC框架内使用的嘛。所以2楼的示例代码好像用不了呀。
    你为什么不用CSocket呢?
      

  4.   

    因为我不会用,而且我觉得也不好用
    你这个地方需要用CSocket的异步版本CAsyncSocket的Connect函数,它会立马返回WSAEWOULDBLOCK错误(大概是这个样子的,记不清了),不要管它(如果是其它错误就要管一下),如果连接成功了OnConnect事件会被触发
    过5秒以后你再过来判一下,如果5秒连不上(所谓5秒这个时间你可以自己定),你就可以认为连接失败了看看,很麻烦吧,所以我不用它