资源简介
包含客户端与服务端,实现了登录,注册,用户上线或离线提示,选择好友进行聊天等功能。VS2017下开发。
代码片段和文件信息
#include
#include
#include
#pragma comment(lib “ws2_32.lib“)
#include
#define namesize 16
#define passwordsize 10
#pragma warning(disable:4996)
using namespace std;
char name[namesize];
char password[passwordsize];
char selectflag[10][2];
char selectname[10][16];
char selectdialog[10][16];
int sel;
//*************************************************************************************
//截取字符串ch从pos位置开始的length长度的字符串并返回新字符串的地址
char* substring(char* ch int pos int length)
{
char* pch = ch;
//定义一个字符指针,指向传递进来的ch地址。
char* subch = (char*)calloc(sizeof(char) length + 1);
//通过calloc来分配一个length长度的字符数组,返回的是字符指针。
int i;
//只有在C99下for循环中才可以声明变量,这里写在外面,提高兼容性。
pch = pch + pos;
//是pch指针指向pos位置。
for (i = 0; i {
subch[i] = *(pch++);
//循环遍历赋值数组。
}
subch[length] = ‘\0‘;//加上字符串结束符。
return subch; //返回分配的字符数组地址。
}
//*************************************************************************************
//从字符串buf中寻找第n次出现字符c的位置并返回,没有则返回-1
int find(char *buf char c int n)
{
if (n<0)
return -1;
int poisition = -1 tempn = 1;
int len = strlen(buf);
for (int i = 0; i if (buf[i] == c) {
if (tempn == n) {
poisition = i;
break;
}
tempn++;
}
}
return poisition;
}
int select(char *buff)
{
//4#0.black#1.tony#
printf(buff);
printf(“\n“);
int num = 0;//在线用户人数
int numberofdian = 1;
int numberofjing = 1;
int m = find(buff ‘#‘ 1) n = find(buff ‘#‘ 2);
for (int i = 0; m != -1 && n != -1 && i < 10; i++)
{//
char *sub1 = substring(buff m + 1 find(buff ‘.‘ numberofdian) - m - 1);//
char *sub2 = substring(buff find(buff ‘.‘ numberofdian) + 1 find(buff ‘.‘ numberofdian + 1) - find(buff ‘.‘ numberofdian) - 1);
char *sub3 = substring(buff find(buff ‘.‘ numberofdian + 1) + 1 n - find(buff ‘.‘ numberofdian + 1) - 1);
numberofdian += 2;
numberofjing += 1;
strcpy_s(selectflag[num] 5 sub1);
strcpy_s(selectname[num] 20 sub2);
strcpy_s(selectdialog[num] 20 sub3);
num++;
m = n;
n = find(buff ‘#‘ numberofjing + 1);
}
return num;
}
void refresh()
{
printf(““);
}
DWORD WINAPI recv(PVOID p)
{
SOCKET sockConing = *((SOCKET*)p);
char buff[1024];
memset(buff 0 sizeof(buff));
while (1)//3#0.tony#hello
{
memset(buff 0 sizeof(buff));
recv(sockConing buff sizeof(buff) 0);
//printf(“收到buff=%s\n“ buff);
char *operation = substring(buff 0 find(buff ‘#‘ 1));
if (*operation == ‘4‘) {
int num = select(buff);
printf(“当前在线用户为:\n“);
for (int i = 0; i < num; i++)
{
//printf(selectid[i]);
printf(“%d“ i);
printf(“.“);
printf(selectname[i]);
if (strcmp(selectflag[i] “2“)==0) {
printf(“ 状态:在线“);
}
else if (strcmp(selectflag[i] “3“)==0) {
printf(“ 状态:通话中(与%s)“selectdialog[i]);
}
printf(“ “);
}
printf(
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
..A..H. 38400 2018-11-01 23:28 Server\.vs\Server\v15\.suo
文件 36974592 2018-11-01 23:28 Server\.vs\Server\v15\Browse.VC.db
文件 69402624 2018-11-01 21:49 Server\.vs\Server\v15\ipch\AutoPCH\8b7f273086cef3b0\SERVER.ipch
文件 69402624 2018-10-27 15:31 Server\.vs\Server\v15\ipch\AutoPCH\b70bc26525d36f90\SERVER.ipch
文件 119296 2018-11-01 21:50 Server\Debug\Server.exe
文件 693180 2018-11-01 21:50 Server\Debug\Server.ilk
文件 667648 2018-11-01 21:50 Server\Debug\Server.pdb
文件 76 2018-10-30 11:44 Server\Debug\username&pwd.txt
文件 74 2018-11-01 23:28 Server\Server\Debug\Server.log
文件 309827 2018-11-01 21:49 Server\Server\Debug\server.obj
文件 77890 2018-10-22 18:41 Server\Server\Debug\server.obj.enc
文件 1218 2018-11-01 21:49 Server\Server\Debug\Server.tlog\CL.command.1.tlog
文件 41056 2018-11-01 23:28 Server\Server\Debug\Server.tlog\CL.read.1.tlog
文件 420 2018-11-01 23:28 Server\Server\Debug\Server.tlog\CL.write.1.tlog
文件 2106 2018-11-01 21:50 Server\Server\Debug\Server.tlog\li
文件 5052 2018-11-01 23:28 Server\Server\Debug\Server.tlog\li
文件 394 2018-11-01 23:28 Server\Server\Debug\Server.tlog\li
文件 208 2018-11-01 23:28 Server\Server\Debug\Server.tlog\Server.lastbuildstate
文件 617472 2018-11-01 21:49 Server\Server\Debug\vc141.idb
文件 487424 2018-11-01 21:49 Server\Server\Debug\vc141.pdb
文件 18846 2018-10-27 15:57 Server\Server\server.cpp
文件 5946 2018-10-14 09:26 Server\Server\Server.vcxproj
文件 951 2018-10-14 09:26 Server\Server\Server.vcxproj.filters
文件 165 2018-10-14 09:25 Server\Server\Server.vcxproj.user
文件 100 2018-11-01 22:03 Server\Server\username&pwd.txt
文件 1432 2018-10-14 09:25 Server\Server.sln
..A..H. 30208 2018-10-24 07:23 client\.vs\client\v15\.suo
文件 36982784 2018-10-24 07:23 client\.vs\client\v15\Browse.VC.db
文件 42598400 2018-10-23 19:27 client\.vs\client\v15\ipch\AutoPCH\892f6aae33837550\CLIENT.ipch
文件 7813 2018-10-24 07:23 client\client\client.cpp
............此处省略44个文件信息
- 上一篇:chi_sim.traineddata加OCR安装包
- 下一篇:iview后台框架
相关资源
- VisualAssistX支持VS2017
- opencv一维码识别
- VAssist破解版用于vs2013-17
- 基于windows的蓝牙通信
- 基于windows的蓝牙扫描、连接、通讯
- 泊松重建代码
- VisualAssistX2210官方版+破解补丁+汉化包
- boost库开发范例大全
- 基于qt实现的minidraw画板程序
- VS2013做的推箱子含源码
- VS2013 做的简单的贪吃蛇含源码
- 多功能网络媒体播放器-Qt-demo
- 坦克大战可执行程序-windows
- 炫彩气泡--win32实现透明不规则窗口
- amCap工具源码
- 基于opencv的三种人脸识别
- 个人防火墙
- B样条反求控制点绘制曲线
- cmake-3.15.0-rc3-win64-x64.msi
- 远程控制桌面源码
- 基于opencv的鱼眼相机标定和透视投影
- 记事本开发
- 客户与服务器程序的同步与通信机制
- 三维点云的可视化
- 泊松曲面重建
- opencv3.4.1+contrib编译好的install文件vs
- 基于Qt实现的物流管理系统
- 编译原理第2版(中文)
- 相机标定和鸟瞰图生成_vs2017.rar
- opencv4.0.1+contrib+vs2017_x64
评论
共有 条评论