资源简介
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\
- 上一篇:毕业论文开题报告
- 下一篇:ESP_2dof_model1.mdl.r2012b
评论
共有 条评论