看了源代碼,我明白了。他只是用對上存放SOCKET的句柄。。我們看一下他的新定義結構體。struct win_fd_set {
u_int fd_count;
SOCKET fd_array[1];
};
這個就是新定義結構體,跟原來稍微有點變化只是把64改為1,有些同學可能見多很多這樣的寫法,這種寫法我也在一些項目使用了。這種寫法可以fd_array動態變化。
win_fd_set * Set = (win_fd_set*)malloc(sizeof(win_fd_set) + sizoef(SCOEKT) * 10);
Set->fd_array 可以放11 個 SOCKET,因為我的內存大小足夠放11個SOCKET。
請記住內存是沒有數據格式,只要足夠大小,隨便你怎么放。數據格式只是方便我們管理和處理數據而已。