wxWidgets中线程里使用wxSOCKET

DWORD RecvAll( wxSocketBase * socket, char * buf, int size ) 

DWORD dwStatus = 0 ; 
char * p = buf; 
int total = 0; 

while( total < size ) 

socket->Read( p , size - total ) ; 
if ( socket->Error() ) 

dwStatus = socket->LastError() ; 
break ; 

int count = socket->LastCount() ; 
total += count ; 
p +=count ; 


return dwStatus ; 

一线程中建立一wxSocketClient来发送请求信息,并立即接收回应,然后再将回应信息在界面上显示出来: 
m_pSocket = new wxSocketClient() ; 
m_pSocket->SetTimeout( 5 ) ; 
m_pSocket->SetFlags( wxSOCKET_WAITALL) ; 
wxSOCKET_WAITALL是阻塞式的 但是不会阻塞GUI界面的。当出现错误时我会Destory,然后再重新new wxSocketClient再Connect服务端,可这以后的RecvAll返回的一直都是错误码7,7对应的是wxSOCKET_WOULDBLOCK, 
不是说是阻塞式的么?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值