在window下使用select实现多socket的连接修订版本
// WeChat.cpp : Defines the entry point for the console application.
//#include "stdafx.h"
#include <stdio.h>
#include <string>
#include <vector>
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")
#include "Util.h"
#define MAX_NUM 10
#define DATA_NUM 1024
using namespace std;
int sock_fd;
int client_fd[MAX_NUM];
struct fd_set read_set;
struct fd_set write_set;
struct fd_set select_read_set;
int max_fd;
int new_conn_fd;
struct timeval timeout = {0, 5000};
char recv_buf[DATA_NUM] = {0};
static DWORD WINAPI ThreadAccept(void *p);
void main(void )
{
sock_fd = -1;
max_fd = -1;
new_conn_fd = -1;
FD_ZERO(&read_set);
FD_ZERO(&write_set);
FD_ZERO(&select_read_set);
for (int i = 0; i < MAX_NUM; i++)
{
client_fd[i] = -1;
}
WORD wVersionRequested;
WSAData lpWSAData;
wVersionRequested = MAKEWORD(1, 1);
int err = WSAStartup(wVersionRequested, &lpWSAData);