包含客户端与服务端,实现了登录,注册,用户上线或离线提示,选择好友进行聊天等功能。VS2017下开发。
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
..A..H. 38400 2018-11-01 23:28 Server.vsServerv15.suo
文件 36974592 2018-11-01 23:28 Server.vsServerv15Browse.VC.db
文件 69402624 2018-11-01 21:49 Server.vsServerv15ipchAutoPCH8b7f273086cef3b0SERVER.ipch
文件 69402624 2018-10-27 15:31 Server.vsServerv15ipchAutoPCH70bc26525d36f90SERVER.ipch
文件 119296 2018-11-01 21:50 ServerDebugServer.exe
文件 693180 2018-11-01 21:50 ServerDebugServer.ilk
文件 667648 2018-11-01 21:50 ServerDebugServer.pdb
文件 76 2018-10-30 11:44 ServerDebugusername&pwd.txt
文件 74 2018-11-01 23:28 ServerServerDebugServer.log
文件 309827 2018-11-01 21:49 ServerServerDebugserver.obj
文件 77890 2018-10-22 18:41 ServerServerDebugserver.obj.enc
文件 1218 2018-11-01 21:49 ServerServerDebugServer.tlogCL.command.1.tlog
文件 41056 2018-11-01 23:28 ServerServerDebugServer.tlogCL.read.1.tlog
文件 420 2018-11-01 23:28 ServerServerDebugServer.tlogCL.write.1.tlog
文件 2106 2018-11-01 21:50 ServerServerDebugServer.tloglink.command.1.tlog
文件 5052 2018-11-01 23:28 ServerServerDebugServer.tloglink.read.1.tlog
文件 394 2018-11-01 23:28 ServerServerDebugServer.tloglink.write.1.tlog
文件 208 2018-11-01 23:28 ServerServerDebugServer.tlogServer.lastbuildstate
文件 617472 2018-11-01 21:49 ServerServerDebugvc141.idb
文件 487424 2018-11-01 21:49 ServerServerDebugvc141.pdb
文件 18846 2018-10-27 15:57 ServerServerserver.cpp
文件 5946 2018-10-14 09:26 ServerServerServer.vcxproj
文件 951 2018-10-14 09:26 ServerServerServer.vcxproj.filters
文件 165 2018-10-14 09:25 ServerServerServer.vcxproj.user
文件 100 2018-11-01 22:03 ServerServerusername&pwd.txt
文件 1432 2018-10-14 09:25 ServerServer.sln
..A..H. 30208 2018-10-24 07:23 client.vsclientv15.suo
文件 36982784 2018-10-24 07:23 client.vsclientv15Browse.VC.db
文件 42598400 2018-10-23 19:27 client.vsclientv15ipchAutoPCH892f6aae33837550CLIENT.ipch
文件 7813 2018-10-24 07:23 clientclientclient.cpp
............此处省略44个文件信息
#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] = ‘ ‘;//加上字符串结束符。
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(“
“);
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
“ buff);
char *operation = substring(buff 0 find(buff ‘#‘ 1));
if (*operation == ‘4‘) {
int num = select(buff);
printf(“当前在线用户为:
“);
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.vsServerv15.suo
文件 36974592 2018-11-01 23:28 Server.vsServerv15Browse.VC.db
文件 69402624 2018-11-01 21:49 Server.vsServerv15ipchAutoPCH8b7f273086cef3b0SERVER.ipch
文件 69402624 2018-10-27 15:31 Server.vsServerv15ipchAutoPCH70bc26525d36f90SERVER.ipch
文件 119296 2018-11-01 21:50 ServerDebugServer.exe
文件 693180 2018-11-01 21:50 ServerDebugServer.ilk
文件 667648 2018-11-01 21:50 ServerDebugServer.pdb
文件 76 2018-10-30 11:44 ServerDebugusername&pwd.txt
文件 74 2018-11-01 23:28 ServerServerDebugServer.log
文件 309827 2018-11-01 21:49 ServerServerDebugserver.obj
文件 77890 2018-10-22 18:41 ServerServerDebugserver.obj.enc
文件 1218 2018-11-01 21:49 ServerServerDebugServer.tlogCL.command.1.tlog
文件 41056 2018-11-01 23:28 ServerServerDebugServer.tlogCL.read.1.tlog
文件 420 2018-11-01 23:28 ServerServerDebugServer.tlogCL.write.1.tlog
文件 2106 2018-11-01 21:50 ServerServerDebugServer.tlogli
文件 5052 2018-11-01 23:28 ServerServerDebugServer.tlogli
文件 394 2018-11-01 23:28 ServerServerDebugServer.tlogli
文件 208 2018-11-01 23:28 ServerServerDebugServer.tlogServer.lastbuildstate
文件 617472 2018-11-01 21:49 ServerServerDebugvc141.idb
文件 487424 2018-11-01 21:49 ServerServerDebugvc141.pdb
文件 18846 2018-10-27 15:57 ServerServerserver.cpp
文件 5946 2018-10-14 09:26 ServerServerServer.vcxproj
文件 951 2018-10-14 09:26 ServerServerServer.vcxproj.filters
文件 165 2018-10-14 09:25 ServerServerServer.vcxproj.user
文件 100 2018-11-01 22:03 ServerServerusername&pwd.txt
文件 1432 2018-10-14 09:25 ServerServer.sln
..A..H. 30208 2018-10-24 07:23 client.vsclientv15.suo
文件 36982784 2018-10-24 07:23 client.vsclientv15Browse.VC.db
文件 42598400 2018-10-23 19:27 client.vsclientv15ipchAutoPCH892f6aae33837550CLIENT.ipch
文件 7813 2018-10-24 07:23 clientclientclient.cpp
............此处省略44个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)