当前位置: 技术问答>linux和unix
select(...)函数请教!100分!
来源: 互联网 发布时间:2014-10-25
本文导语: 问题现象:短连接客户端连续发5000个信息包(每个包都重新连接),大约 前2000个左右的包正常,后面的包在等待客户端关闭时,select 有超时异常。 代码: 等待关闭部分:...
问题现象:短连接客户端连续发5000个信息包(每个包都重新连接),大约
前2000个左右的包正常,后面的包在等待客户端关闭时,select
有超时异常。
代码:
等待关闭部分:服务器端不主动关闭,由客户端主动关闭,服务器接到
客户关闭FIN后再关闭。
//子进程函数
void CMApp::ProcessFunc()
{
short PkgLen=0;
int nSocket=0;
socklen_t nAddrLen;
struct sockaddr_in SockAddr;
char In[98],Out[91];
char DealCode[3];
char TradeNum[7];
long nTradeNum;
int bTagofDeal05=0;
int nRet=0;
fd_set Read_Ready;
struct timeval Timeout;
Timeout.tv_sec=MTIMEOUT;
Timeout.tv_usec=0;
cout
前2000个左右的包正常,后面的包在等待客户端关闭时,select
有超时异常。
代码:
等待关闭部分:服务器端不主动关闭,由客户端主动关闭,服务器接到
客户关闭FIN后再关闭。
//子进程函数
void CMApp::ProcessFunc()
{
short PkgLen=0;
int nSocket=0;
socklen_t nAddrLen;
struct sockaddr_in SockAddr;
char In[98],Out[91];
char DealCode[3];
char TradeNum[7];
long nTradeNum;
int bTagofDeal05=0;
int nRet=0;
fd_set Read_Ready;
struct timeval Timeout;
Timeout.tv_sec=MTIMEOUT;
Timeout.tv_usec=0;
cout