• 大小: 5.28MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-22
  • 语言: C/C++
  • 标签: C语言版qq  

资源简介

c语言实现的类似qq功能的程序源码,利用多线程、套接字、等实现客户端服务器端的安装,可以作为期末大作业的

资源截图

代码片段和文件信息

#include
#include“pthread.h“
#include
#include
#include
#include
#include
#include
#include
#include“graphics.h“


#define WSAVERS MAKEWORD(11)
#define CLS system(“cls“)
#define PAUSE system(“pause>nul“)
#define USERNAMELEN 30
#define ONLINEUSER_MAX 500
#define TIMEOUT  100000 //1000000微秒 = 1秒
#define STATUS int           //返回值类型
#define PAGERSIZE 20 //定义每页显示的个数
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define SYSLOG “systemlog.log“
#define SYSINI “serverinfor.ini“
#define ENTER 1300
#define SELECTED printf(“ ◆→“)  //菜单被选中
#define MainMenuNum 10
#define ShowBox(titletext) MessageBox(NULLtexttitleMB_OK|MB_IConerror)
#define YELLOWWHITE system(“color 6f“)//背景黄字体白
#define YELLOWPURPLE system(“color 65“)//背景黄字体紫
#define DOUBLEYELLOW system(“color 6e“)//背景黄字体淡黄
#define BLUEWHITE system(“color 17“)//背景蓝字体白
#define MAX_WORD   1280 //定义最大的消息字符长度1280/2
#define CURCHATUSER_MAX 10 //最大回话个数
#define title(name) system(name)


typedef char maxmes[MAX_WORD]; //最多只能发送640个中文字符

u_short portbase = 0;

struct timeval timeout={0TIMEOUT};
typedef struct {
int year;
int month;
int day;
int hour;
int minute;
int second;
char week[10];
}longtime;//定义一个长日期格式的时间结构体别名

typedef struct{
char onlinestate;//在线状态 H隐身 O在线 Q请勿打扰
char Ausername[USERNAMELEN];//接收端
char Susername[USERNAMELEN];//发送端
char QUnchatstate;//群聊天状态y/n
}CURCHATUSER;

struct ini{
char serverflag[100];//服务器配置文件的标识信息
char serverip[20];//服务器的IP
char serverport[6];//服务器监听的端口
char netprotocol[5];//本程序采用的网络协议
};

typedef struct {
char username[USERNAMELEN];//在线用户名字
char onlinestate;//用户的在线状态
}onlineuser;

struct tempmesbuffer{
char tempmes[10240];
int logsize;
}tempmesrestore; //临时消息记录

typedef struct{
char username[USERNAMELEN];
char userpwd[USERNAMELEN];
char usersfzh[USERNAMELEN];
longtime time;
}USERTIME;//定义一个存储用户信息的结构体;

typedef struct{
char despcript[4]; //指令表标识符
SOCKET remotesock; //回话方的套接字
char Susername[USERNAMELEN];//发送源
char Ausername[USERNAMELEN];//接受端
maxmes mes;
}MES;//定义一个把消息拆分成指定信息的结构体;

typedef struct{
char despcript[4];
char Susername[USERNAMELEN];//发送源
char Ausername[USERNAMELEN];//接受端
maxmes mes;
}MESREMOT;//定义一个把消息拆分成指定信息的结构体;

SOCKET s;

STATUS loginflag = FALSE;//登陆标志  真为登陆

CURCHATUSER OnlineChatUserList[CURCHATUSER_MAX]; //会话列表数组

int CurChatWithUser = 0;  //当前会话在回话数组中的位置

int CurOnChatUserCount = 0; //当前会话的个数

pthread_t thread;//进程的标示

char curuseuser[USERNAMELEN] = ““;//当前用户

char curuseronlinestate;//当前用户状态

void checkgetchar(char);

STATUS randcode()//验证码的产生函数和验证函数
{
srand(time(NULL));
int wordint[5] = {00000}compareint[5] = {00000};
char str[6] = ““tempstr[6] = ““;
int i = 0;
for(i = 0;i < 5;i++)
{
wordint[i] = rand()%26+97;
str[i] = wordint[i];
}
// 绘图环境初始化
initgraph(300 300 NULL);
cleardevice()

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        136  2011-12-27 21:44  server\.txt

     文件        708  2011-12-27 21:46  server\1.txt

     文件       2922  2011-12-27 21:43  server\asd1.txt

     文件         72  2012-06-14 12:23  server\Debug\.txt

     文件        309  2012-06-14 12:34  server\Debug\1.txt

     文件         68  2012-06-14 12:33  server\Debug\asd.txt

     文件        352  2012-06-14 12:34  server\Debug\asd1.txt

     文件       1017  2012-06-14 12:34  server\Debug\hellocc1.txt

     文件      86070  2011-12-11 00:50  server\Debug\pthreadVC2.dll

     文件       1359  2012-06-14 12:27  server\Debug\qwe1.txt

     文件    1950720  2011-12-15 00:30  server\Debug\server.bsc

     文件     221232  2011-12-26 00:56  server\Debug\server.exe

     文件     356584  2011-12-26 00:56  server\Debug\server.ilk

     文件         92  2012-06-14 12:19  server\Debug\server.ini

     文件     119609  2011-12-26 00:56  server\Debug\server.obj

     文件      43520  2011-12-15 18:54  server\Debug\server.opt

     文件    4611288  2011-12-25 23:04  server\Debug\server.pch

     文件     443392  2011-12-26 00:56  server\Debug\server.pdb

     文件     985033  2011-12-26 00:56  server\Debug\server.sbr

     文件        766  2012-06-14 12:33  server\Debug\systemlog.log

     文件        324  2012-06-14 12:22  server\Debug\userinfo.inf

     文件     345088  2011-12-27 20:27  server\Debug\vc60.idb

     文件      77824  2011-12-26 00:56  server\Debug\vc60.pdb

     文件      43162  2011-12-12 14:34  server\pthread.h

     文件      86070  2011-12-11 00:50  server\pthreadVC2.dll

     文件      29280  2011-12-11 00:50  server\pthreadVC2.lib

     文件         69  2011-12-27 19:51  server\qwe.txt

     文件       4091  2011-12-27 21:46  server\qwe1.txt

     文件       4844  2011-12-11 00:57  server\sched.h

     文件      59462  2011-12-26 01:06  server\server.cpp

............此处省略52个文件信息

评论

共有 条评论

相关资源