• 大小: 42KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-07
  • 语言: 其他
  • 标签:

资源简介

lsd远程终端管理系统完整功能,包括聊天功能,还有项目思路,以及配置文件。 详情介绍: http://blog.csdn.net/hengqiaqia/article/details/77967547 如有问题可以咨询 QQ:976968684

资源截图

代码片段和文件信息

#include “head.h“
int sockfd = 0;
int heart_id; //心跳包id
char heart_name[1024];//心跳包的name
int flag=0; //新加入聊天用户标志位
int te=0; //新加入聊天用户用户名
void sig_handler(int signo);
char* get_array(char*p char* filenamechar* value);//成功返回p,失败返回NULL
//获取时间
char *mygettime()
{
//time ( &rawtime ); -- 获取时间,以秒计,从1970年1月一日起算,存于rawtime 
//localtime ( &rawtime ); -- 转为当地时间,tm 时间结构 
//asctime ()-- 转为标准ASCII时间格式: 
//星期 月 日 时:分:秒 年
time_t rawtime; 
struct tm * timeinfo; 
time ( &rawtime ); 
timeinfo = localtime ( &rawtime ); 
return asctime(timeinfo);

}
//退出与服务器的连接
void client_exit(int sockfd)
{
Packet datapack;
memset(&datapack0sizeof(datapack));
datapack.data_type = TYPE_EXITT;//正常退出
if(write(sockfd&datapacksizeof(Packet))==-1)
{
fprintf(stderr“文件名:%s 函数名:%s 行号:%d 错误原因:%s\n“__FILE____func____LINE__strerror(errno));
exit(EXIT_FAILURE);
}
printf(“欢迎下次再来!\n“);
exit(EXIT_SUCCESS);
}
//退出登陆界面
void user_exit(int sockfdint id)
{
Packet datapack;
memset(&datapack0sizeof(datapack));
datapack.id=id;
datapack.data_type = TYPE_EXIT;//正常退出登陆的数据包类型
if(write(sockfd&datapacksizeof(Packet))==-1)
{
fprintf(stderr“文件名:%s 函数名:%s 行号:%d 错误原因:%s\n“__FILE____func____LINE__strerror(errno));
exit(EXIT_FAILURE);
}
alarm(0);//停止发送心跳包
}
//主菜单
void menu()
{
system(“clear“);
printf(“当前时间:%s\n“mygettime());
printf(“******远程终端管理系统******\n“);
printf(“\t1>注册\n“);
printf(“\t2>登陆\n“);
printf(“\t0>退出\n“);
printf(“*******************************\n“);
}
void showdynamictime()
{
tTime++;
    if(tTime >= 1000000)                //
        tTime = 0;
    if(1 != tTime % 50)
        return;
    //显示时间
    printf(“计时: %d:%d:%d %d“ hour minute second);
    second++;
    if(second > NUM)
    {
        second = 0;
        minute++;
    }
    if(minute > NUM)
    {
        minute = 0;
        hour++;
    }
}
void menu_success(char* name)
{
printf(“请按回车键继续\n“);
getchar();
system(“clear“);
printf(“时间:%s\n“mygettime());
showdynamictime();
printf(“欢迎-%s-进入聊天系统!\n“name);
printf(“*******欢迎进入个人登录界面*******\n“);
printf(“\t1>远程终端命令\n“);
printf(“\t2>聊天功能\n“);
printf(“\t3>查看在线用户\n“);
printf(“\t0>退出客户端\n“);
printf(“**********************************\n“);

}
void *func_thread(void* arg)
{
Packet datapack;//聊天数据包
memset(&datapack0sizeof(datapack));
int ret = 0;
while(1)
{
if((ret=read(sockfd&datapacksizeof(Packet)))==-1)
{
fprintf(stderr“文件名:%s 函数名:%s 行号:%d 错误原因:%s\n“__FILE____func____LINE__strerror(errno));
exit(EXIT_FAILURE);
}
if(strcmp(datapack.message“end“)==0)
{
break;
}
if(datapack.chatid==222){
printf(“用户%s给你发送了群聊消息:%s\n“datapack.namedatapack.message);
}else{
printf(“用户%s给你发送了一条消息:%s\n“datapack.namedatapack.message);
}
}
pthread_exit(NULL);
}

//进入聊天室函数
void chat(int sockfdint idchar* name)
{
Packet datapack;
memset(&datapack0sizeof(datapack));
datapack.id=id;
strcpy(datapack.namename);
printf(“-用户%s-正在聊天室\n“datapack.name);
//创建子线程
pthread_t a_thread;
pthread_attr_t attr;
pthre

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件       22124  2017-09-08 08:53  demo\cli
     文件          28  2017-09-04 01:46  demo\配置文件~
     文件          28  2017-09-08 01:50  demo\配置文件s~
     文件         656  2017-09-11 02:50  demo\日志.txt
     文件       22239  2017-09-11 02:48  demo\ser
     文件          27  2017-09-08 01:52  demo\配置文件c
     文件          27  2017-09-08 01:52  demo\配置文件s
     文件        2171  2017-09-08 07:00  demo\head.h~
     文件       18942  2017-09-08 08:17  demo\server.c~
     文件         211  2017-09-08 03:38  demo\client.txt
     文件           0  2017-09-06 03:02  demo\client.txt~
     文件       18944  2017-09-11 02:48  demo\server.c
     文件        2191  2017-09-08 07:03  demo\head.h
     文件       16549  2017-09-08 08:52  demo\client.c
     文件       16549  2017-09-08 08:52  demo\client.c~
     文件          28  2017-09-08 01:52  demo\配置文件c~
     目录           0  2017-09-11 02:53  demo\

评论

共有 条评论

相关资源