我用winsock的函数直接写的程序,可是recv是阻赛的,如果没有数据来就是一直等在这里,整个线程都停住了,请问怎么处理才好呢?因为是nt的service,没界面,而且是多线程的。所以不好用csocket,
select也用了,可是就是解决不了
各位高手帮帮我吧。急死了
select也用了,可是就是解决不了
各位高手帮帮我吧。急死了
解决方案 »
- 由于应用程序配置不正确,应用程序未能.....如何解决
- 问几个面试问题,谢谢!!!
- LRESULT SendMessage( UINT message, WPARAM wParam = 0, LPARAM lParam = 0 )函数中参数wParam是否会受其他消息的影响而改变?
- 怎样限制windows窗口的最小尺寸?
- StretchBlt函数怪现象
- DCOM下怎么使用MSCOMM控件啊。
- 多文档窗口中每个VIEW怎么才能实现VC中OUTPUT的那种标签窗口?
- 在任务栏生成个气泡,为什么出不来??
- 我遇到怪事情了!同样的代码,我这边用代码创建COMBOBOX不能创建,在我朋友那却行
- ********谁能告诉我,sqlmail是咋回事,咋用啊,用在啥地方啊
- 还是win95下的那个错误!
- 关于CHtmlView编程的问题!
if(rval<0) return FALSE;
就是在这里停住了
if(rval<0) return FALSE;
就是在这里停住了
用CAsyncSocket 类吧
但是就是在这里堵死了我试试看CAsyncSocket
线程里面用
CSocket m_socket;
m_socket.Attach(*Socket);
就出错
分还没出去
参考书:《Windows网络编程技术》
我没窗体怎么做啊
设置成非阻塞后,用select函数检查socket event,如果想立即返回,timeout参数设置成{0,0}不过我个人认为多线程的程序还是用阻塞的方式好。
ioctlsocket(*Socket,FIONBIO,(unsigned long *)&ul);
SOCKET m_socket=*Socket;
fd_set Socket_Read;
FD_ZERO(&Socket_Read);
FD_SET(m_socket,&Socket_Read);
while(select(m_socket+1, &Socket_Read,NULL,NULL,0))到这还是阻赛~~
我想把分送出去啊,各位帮忙啊,上面的代码哪里有错呢?
*Socket是线程函数传进来的参数
setsockopt(m_socket,SOL_SOCKET,SO_RCVTIMEO,&nTimeOut);
天哪,这是什么结构
timeout.tv_sec = 2; // 2 second
timeout.tv_usec= 2; // 0.000002 second
已解决,用struct timeval的
怎么和你联系呢