📄 clientsocketlist.cpp
字号:
// 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -