WORD wVersionRequested;
WSADATA wsaData;
int err;

wVersionRequested = MAKEWORD( 2, 2 );

err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 )
{
return;
}

if ( LOBYTE( wsaData.wVersion ) != 2 ||
        HIBYTE( wsaData.wVersion ) != 2 )
{ WSACleanup( );
return; 
} char hostname[256];
gethostname(hostname,sizeof(hostname));                     //这一代码是为
HOSTENT*hos=gethostbyname(hostname);                        //了实现自动获取安
CString CS=inet_ntoa(*(struct in_addr*)hos->h_addr_list[0]);// 装程序的主机代码

SOCKET socksrv = socket(AF_INET, SOCK_STREAM, 0);
sockaddr_in saServer;
//saServer.sin_addr.S_un.S_addr = htonl(INADDR_ANY);//宏INADDR_ANY定义的是0
saServer.sin_addr.S_un.S_addr = inet_addr(CS);//宏INADDR_ANY定义的是0
saServer.sin_family = AF_INET;
saServer.sin_port = htons(6000);
bind(socksrv, (SOCKADDR*)&saServer, sizeof(SOCKADDR));
listen(socksrv, 5);
我现在已经到了监听这一步,然后我需要accept,但是我有多个终端,如果多个终端都发出连接请求,我想采用多线程方式来处理,一个线程来处理一个Accept后的新线程,现在的问题:
    在什么情况下,启动新线程?
    在新线程里accept,生产一个新的套接字,还是在主线程里accept后,启动新线程.不管采用什么方式,能否给一段多终端的代码,参考一下.还有就是在accept时,端口号是自动分配的么?是不是和监听端口没有任何联系?
谢谢