1,593
社区成员
发帖
与我相关
我的任务
分享
void TForm1::fun_SendCom(SOCKET st,unsigned char sendbuf[256],int sendlen)
{
unsigned char recvbuf[256];
memset(recvbuf,0,256);
int recvlen =strlen(recvbuf) ;
if (send(st,sendbuf,sendlen,0) == sendlen)
{
DisplaySendDataA(sendbuf,sendlen,true);
fd_set fds;
struct timeval tv;
FD_ZERO(&fds);
tv.tv_sec = 1;
tv.tv_usec = 0;
FD_SET(st, &fds);
int result = 0;
Application->ProcessMessages();
Sleep(1);
for (int i=0;i<2;++i)
{
if (select(0, &fds, NULL, NULL, &tv)>0)
{
// int ret = ioctlsocket(sClient,FIONREAD,&hasread);
result += recv(st,recvbuf+result,recvlen-result,0);
if (!result || recvbuf[result-1]==0)
break;
else
{
FD_ZERO(&fds);
tv.tv_sec = 1;
tv.tv_usec = 0;
FD_SET(st, &fds);
Application->ProcessMessages();
Sleep(100);
}
}
else
break;
}
DisplaySendDataA(recvbuf,strlen(recvbuf),false);
}
}
//---------------------------------------------------------------------------