Socket 通信(TCP)非阻塞模式-select 模型
这个范例是个基于 TCP 协议的非阻塞模式下的 SOCKET 通信。
应该非常具有代表性了,分为服务器端和客户端。
非阻塞类型: Select 模型
////////////////////////////////////////////
//
// TCP Server select 非阻塞模式
// IP: 127.0.0.1
// PORT: 1207
////////////////////////////////////////////
#define LISTEN_IP "127.0.0.1"
#define LISTEN_PORT 1207
#define DEFAULT_BUFF 256
#define MAX_LISTEN 2 //最多可同时连接的客户端数量
int g_fd_ArrayC[MAX_LISTEN] = {0}; //处理所有的待决连接
int _tmain(int argc, _TCHAR* argv[])
{
WSAData wsData;
SOCKET sListen;
SOCKET sClient;
SOCKADDR_IN addrListen;
SOCKADDR_IN addrClient;
int addrClientLen = sizeof(addrClient);
char recvBuff[DEFAULT_BUFF] = {0};
char responseBuff[DEFAULT_BUFF] = {"Server Has Received"};
char noresponseBuff[DEFAULT_BUFF] = {"服务器端连接数已满,无法
连接"};
int nRes = 0;
printf(">>>>>TCP 服务器端启动<<<<<<");
WSAStartup(MAKEWORD(2,2), &wsData);