关于非阻塞socket通信的问题,急急急~~
环境描述:
tserversocket控件编写服务器端控制软件
采用非阻塞模式与client端进行通信
处理过程大致如下:
在Read事件里接受client发送过来的数据,如果合法则开辟线程,并将该连接的socket与数据一起传递给线程,线程处理完数据后,再通过传递进来的socket发送出去。
问题描述:
当只有一个client连接时,一切都正常。当多个client连接时,只有Read事件里接受到的第一个socket 有效,其他连接都无效了,但是activeconnections还保持有那些连接,发送数据,却怎么也发送不出去。
部分代码:
线程部分:
strcpy(cSendBuff,Trans(cType,cName,cBookInf));
nSendLen=strlen(cSendBuff);
for(int i=0;i<this->Socket->ActiveConnections;i++)
{
if(this->Socket->Connections[i]->RemoteAddress==this->cClientIP)
{
this->Socket->Connections[i]->SendBuf(cSendBuff,nSendLen);
}
}(省略了数据处理的过程)
线程传递的参数:
TThreadSend(TServerWinSocket *pSocket,AnsiString pClientIP,char * pBuff)
请各位老大指点~~急急~~24小时在线等~~~