⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clientsocketlist.cpp

📁 这源代码是《白领就业指南:visual c++ 6.0 设计师之路》的配套源代码
💻 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 + -