多客户端通信之Select服务器

//主要是增加了一个连接管理类,以及增加了消息处理线程
//消息处理线程其实是不断地在循环看列表中是否有新客户端添加进来
//添加进来就加入到select的读队列中,然后设置select的等待时间为0
//就是立即返回,非阻塞模式,select主要是一旦底层要有数据过来以后会根据IO的变化通知select的函数立即返回,然后遍历所有的socket,找到读变化的客户端,获取发送过来的休息,但是这个还有一个问题,会有半包的现象,因为tcp是数据流,他只保证不断流,但不保证水大小一样。/后续再继续解决
// server3.cpp : 定义控制台应用程序的入口点。
//

include “stdafx.h”

include

include

include “SocketList.h”

using namespace std;

DWORD WINAPI WorkThread(LPVOID lpParam)
{
SocketList* userlist=(SocketList*)lpParam;
int err=0;
fd_set fdread;
struct timeval timeout;
timeout.tv_sec=0;
timeout.tv_usec=0;

char receBuff[MAX_PATH];
char sendBuf[MAX_PATH];

SOCKET socket;
while (true)
{
    userlist->makefd(&fdread);
    err=selec
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值