27,375
社区成员
发帖
与我相关
我的任务
分享
500 / (40 / 25) ms = 50 * 25 / 40 ms = 312.5 ms
人的肉眼感觉能区别 400ms 与 312.5 ms,貌似都会感觉的很慢吧...
int flags = fcntl(sock, F_GETFL, 0);
flags |= O_NONBLOCK;
fcntl(sock, F_SETFL, flags);
int CReceiveInSendSocket::Send(const void* lpBuf, int nBufLen, int nFlags)
{
//2009年3月18日13:09:50添加 用于输出本函数执行的处理器时间
clock_t start=clock();
// TODO: Add your specialized code here and/or call the base class
if(nBufLen==0)
return 0;
CSocket::Send(lpBuf, nBufLen, nFlags);
int i= Receive();
TRACE("发送数据所用时间:%d\n",clock()-start);
return i;
}
发送时调用此函数,TRACE语句输出的时间就在500毫秒左右。
void OnAcceptRecv(void DT_XDATA *buf,WORD size) REENTRANT_MUL
{
/* printf received data */
#ifdef DEBUG
while(size--)
printf("%c",*((BYTE DT_XDATA *)buf)++);
#endif
char DT_XDATA EndDeal[]={0xff}; //一下部分为简单修改原来的程序
OrderManage(buf,size); //命令响应函数,调试用的命令什么都没有做
if(Length==0)
TCPSend(ExAccept,EndDeal,1);//命令响应函数什么都不做 Length==0所以回发一个0xff
TCPSend(ExAccept,SendData,Length);//此处Length为0应该不发送任何数据
Length=0;
}
请麻烦各位继续帮忙看看是哪儿的问题非常感谢!!