软件使用TCP客户端连接服务器。。
在调试的时候,发现,如果服务器没有打开侦听端口,则下面这行代码要等待很久,才会执行到下一行。。m_SockComm->Connect(str,m_nIPPortNumber)
请问各位朋友,有什么办法可以解决吗?
在调试的时候,发现,如果服务器没有打开侦听端口,则下面这行代码要等待很久,才会执行到下一行。。m_SockComm->Connect(str,m_nIPPortNumber)
请问各位朋友,有什么办法可以解决吗?
解决方案 »
- 求帮助!!!
- 请问如何证明程序是合法的,不是冒名顶替的?
- 如何用C++实现读者/写者问题
- AddNew的执行错误
- service能不能接收到消息??????急急急急急急急急!!!在线等
- 很简单的关于变量存储的问题,请各位大虾帮忙!!请进!!!
- 谁能帮忙?MSDN上的原码,不能编译!获得机器码的程序
- 为什么不能设置断点?(排除断点位置不对的可能性)
- 高分求解:显示多种文档的方法!
- 如何象vb\vc那样,在richtextbox中实现输入“.”后弹出提示
- socket类型指定0的时候,怎么就能自动判断是tcp还是udp了?
- NOTIFY消息是MFC引入的机制,还是windows api就有的东西?
而且socket连接默认的是阻塞模式,你可以讲其改为非阻塞模式,再计算超时。
http://blog.sina.com.cn/s/blog_4a6151550100xirf.html
只不过看你那行代码貌似用的是CSocket,说实话,我从来不用
对呀,我用的是CSocket啊,,是在MFC框架内使用的嘛。所以2楼的示例代码好像用不了呀。
你为什么不用CSocket呢?
你这个地方需要用CSocket的异步版本CAsyncSocket的Connect函数,它会立马返回WSAEWOULDBLOCK错误(大概是这个样子的,记不清了),不要管它(如果是其它错误就要管一下),如果连接成功了OnConnect事件会被触发
过5秒以后你再过来判一下,如果5秒连不上(所谓5秒这个时间你可以自己定),你就可以认为连接失败了看看,很麻烦吧,所以我不用它