天天看點

windows select最多能監視多少個句柄

[code=C/C++]我在windows下使用select步驟如下

while(1)

{

   FD_ZERO(&fds);

   for(i = 0; i <= 64; i++)

   {

        fd_set(sock[i], &fds);  //sock[i]都已成功建立,并且都可以收到資料。

   }

   ret = select(NULL, &fds, NULL, NULL, tv);

   if(ret < 0)

        exit(0);

   else if(ret == 0)

        continue;

   for(i = 0; i <= 64; i++)

   {

        if(FD_ISSET(sock[i], &fds))

        {

              //do something

        }

    }

}

我能肯定sock[64]收到了資料因為我用抓包工具看到的,但是上面的程式探查不出!

如果我将其中一個句柄例如sock[3]移除fds此時就能探查到sock[64]的資料!

最終我得出的結論是select最多隻能監視63個句柄,超過這之後的就無法探查!這是什麼原因,有人遇到過類似情況嗎?

偷偷告訴你一個南京不用上班就能輕松賺錢的辦法 廣告 易神 · 燨燚

問題點數:20分

windows select最多能監視多少個句柄

CSDN推薦

CSDN今日推薦

  • ⋅ 句柄監控
  • ⋅ 用linux指令和程式實際測試一下單程序能打開的最大的句柄數(也可以說是檔案數)------并不一定是1024/2048哈
  • ⋅ Windows作業系統單檔案夾下到底能存放多少檔案及單檔案的最大容量
  • ⋅ [轉]WINDOWS下一個檔案夾最多可以放多少個檔案--終于找到答案了
  • ⋅ WINDOWS下一個檔案夾最多可以放多少個檔案--終于找到答案了
  • ⋅ 系統監控之檔案句柄監控
  • ⋅ oracle 中IN指令
  • ⋅ window一個檔案夾中最多可以存儲多少個檔案
  • ⋅ select句柄數限制 及總結
  • ⋅ 一個程序最多能包含多少線程
windows select最多能監視多少個句柄

zhanshen2891

windows select最多能監視多少個句柄

0 2011-10-20 11:27:49

引用 ・ 舉報 ・ #1 得分:1

我記得是1024

windows select最多能監視多少個句柄

lanneret1234

windows select最多能監視多少個句柄

0 2011-10-20 11:36:04

引用 ・ 舉報 ・ #2 得分:18

C/C++ code?

1

2

3

#ifndef FD_SETSIZE

#define FD_SETSIZE      64

#endif 

在WinSock2.h

試一下改一下FD_SETSIZE的值

windows select最多能監視多少個句柄

woailp___2005

windows select最多能監視多少個句柄

0 2011-10-20 11:38:56

引用 ・ 舉報 ・ #3 得分:1

引用 1 樓 zhanshen2891 的回複:

我記得是1024

應該是這個0.0

windows select最多能監視多少個句柄

lisong871121

windows select最多能監視多少個句柄

0 2011-10-20 12:17:01

引用 ・ 舉報 ・ #4 得分:0

引用 2 樓 lanneret1234 的回複:

C/C++ code

#ifndef FD_SETSIZE

#define FD_SETSIZE      64

#endif 

在WinSock2.h

試一下改一下FD_SETSIZE的值

按照你說的方法我将那個宏改大後問題解決了!!!

繼續閱讀