userlist.cpp

来自「类似QQ的通信的简单服务器和客户端程序」· C++ 代码 · 共 96 行

CPP
96
字号
// Userlist.cpp: implementation of the Userlist class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Userlist.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

Userlist::Userlist()
{
	counter=0;
}

Userlist::~Userlist()
{

}

void Userlist::Add(_struct_user u)
{
	for(i=counter;i<10;i++)
	{
		s[i].used=FALSE;
	}
    strcpy(s[counter].name,u.name);
	strcpy(s[counter].IP,u.IP);
	s[counter].socket=u.socket;
	s[counter].used=TRUE;
	counter++;

}

int Userlist::getUserByName(const char *sUser)
{
	int t;
	for(i = 0;i < 10;i++)
	{
		if(strcmp(s[i].name,sUser)==0)
		{
			 t = i;
			 break;
		}
	}
	return t;


}

void Userlist::Remove(const char *sUser)
{
	i=getUserByName(sUser);
	s[i].name[0]='\0';
	s[i].used=FALSE;
	shutdown (s[i].socket, 0x02);


}

int Userlist::getUserSocketByName(const char *sUser)
{
	for(i = 0;i < 10;i++)
	{
		if(strcmp(s[i].name,sUser)==0)
		{
			 break;
		}
	}
	if(i>=10) 
	{
		return -1;
	}
	else
	{
		return s[i].socket;	
	}
}



char*  Userlist::getUserinformation()
{
	int j=0;
	char szUserinf[5000];
	for(i=0;i<10;i++)
	{
		if(s[i].used)
			j+=sprintf(szUserinf+j,"name:%s;IP:%s;Usersocket:%d;",s[i].name,s[i].IP,s[i].socket);
	}
		szUserinf[strlen(szUserinf)] = '\0' ;
		return szUserinf;

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?