clientsocketlist.cpp
来自「你是一个VC新手吗?你想成为一个高手吗?这个软件,让你一步一步进入VC软件设计师」· C++ 代码 · 共 93 行
CPP
93 行
// ClientSocketList.cpp: implementation of the CClientSocketList class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "ChatRoomServer.h"
#include "ClientSocketList.h"
#include "ClientSocket.h" //add
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CClientSocketList::CClientSocketList()
{
Head=0; //add
}
CClientSocketList::~CClientSocketList()
{
}
BOOL CClientSocketList::Add(CClientSocket *add)//将Socket加入链表队列
{
CClientSocket *tmp=Head;
if (!Head)
{
Head=add;
return false;
}
while (tmp->Next) tmp=tmp->Next;
tmp->Next=add;
return true;
}
BOOL CClientSocketList::Del(CClientSocket *d)//链表队列中删除Socket
{
CClientSocket *p1=Head;
CClientSocket *p2;
if (!Head)
{
return false;
}
if (Head==d)
{
Head=p1->Next;
p1->Close();
delete p1;
return true;
}
for(;p1->Next!=NULL;p1=p1->Next)
{
if(p1->Next==d)
{
p2=p1->Next;
p1->Next= p2->Next;
p2->Close();
delete p2;
return true;
}
}
return false;
}
BOOL CClientSocketList::Sends(char *buff,int n)//所有用户发送信息
{
CClientSocket *curr=Head;
while (curr)
{
curr->Send(buff,n);
curr=curr->Next;
}
return true;
}
BOOL CClientSocketList::OnlySend(char *buff,int n,int who)//仅仅向私聊用户who发送信息
{
CClientSocket *curr=Head;
while (curr && who>0)
{
curr=curr->Next;
who--;
}
curr->Send(buff,n);
return true;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?