资源简介
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个文件信息
- 上一篇:数据结构c语言版本
- 下一篇:数据结构c语言版本严蔚敏清华大学
评论
共有 条评论