资源简介
多个服务器的端口,多个客户端可任意连接端口,多个客户端可相互之间聊天。

代码片段和文件信息
#include
#include
#include
#include
#include
using namespace std;
#pragma comment(lib“ws2_32.lib“)
//字符串处理的函数
int myStrLen(char* str)
{
int i = 0;
while (*str != ‘\0‘)
{
i++;
str++;
}
return i;
}
char* myStrcat(char *str1 char* str2)
{
char *temp = str1;
while (*temp != ‘\0‘)temp++;
while ((*temp++=*str2++) != ‘\0‘);
return str1;
}
char* myStrcp(char *str1 char *str2)
{
char *temp = str1;
int i = 0;
while ((*temp++ = *str2++) != ‘\0‘);
return str1;
}
char * myStrSplit(char *str1 char *str2 char *str3 char sp)
//参数:姓名需要分解信息得到信息分隔符
{
char *temp = str1;
int i = 0;
while ((*str3++ = *str2++) != sp)i++;
while ((*temp++ = *str2++) != ‘\0‘);
*(--str3) = ‘\0‘;
return str3;
}
bool myStrSame(char *str1 char *str2)
{
if (myStrLen(str1) != myStrLen(str2))return false;
for (int i = 0; i if (*str1++ != *str2++)return false;
return true;
}
//start set global varibal
WSADATA wsaData = { 0 };//存放套接字信息
SOCKET ClientSocket = INVALID_SOCKET;//客户端套接字
SOCKADDR_IN ServerAddr = { 0 };//服务端地址
USHORT uPort = 10002;//服务端端口
char IP[32] = “127.0.0.1“;
char msg_type = ‘#‘;
char buffer[4096] = { 0 };
char name[30] = {0};
int iRecvLen = 0;
int iSnedLen = 0;
//end set global varibal
//msg type
//# name
//@ show online user
//info&xx send info to xx
//& is exit
bool startConnectServer()
//连接服务器
{
//初始化套接字
if (WSAStartup(MAKEWORD(2 2) &wsaData))
{
printf(“WSAStartup failed with error code: %d\n“ WSAGetLastError());
return false;
}
//判断套接字版本
if (LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion) != 2)
{
printf(“wVersion was not 2.2\n“);
return false;
}
//创建套接字
ClientSocket = socket(AF_INET SOCK_STREAM IPPROTO_TCP);
if (ClientSocket == INVALID_SOCKET)
{
printf(“socket failed with error code: %d\n“ WSAGetLastError());
return false;
}
//设置服务器地址
ServerAddr.sin_family = AF_INET;
ServerAddr.sin_port = htons(uPort);//服务器端口
ServerAddr.sin_addr.S_un.S_addr = inet_addr(IP);//服务器地址
//连接服务器
if (SOCKET_ERROR == connect(ClientSocket (SOCKADDR*)&ServerAddr sizeof(ServerAddr)))
{
printf(“connect failed with error code: %d\n“ WSAGetLastError());
closesocket(ClientSocket);
WSACleanup();
return false;
}
printf(“连接服务器成功 IP:%s Port:%d\n\n\n\n“
inet_ntoa(ServerAddr.sin_addr) htons(ServerAddr.sin_port));
return true;
}
void sendMessage(char *buf)
{
iSnedLen = send(ClientSocket buf myStrLen(buf) 0);
if (SOCKET_ERROR == iSnedLen)
{
printf(“send failed with error code: %d\n“ WSAGetLastError());
closesocket(ClientSocket);
WSACleanup();
}
else
{
// << buf << endl;
}
}
void recvMessage()
{
char buf[1024] = { 0 };
int ret = 0;
while (1)
{
this_thread::sleep_for(chrono::seconds(3));
this_thread::yield();
memset(buf 0 sizeof(buf));
ret = recv(ClientSocket bu
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-07-03 11:32 多端口服务器多个客户端相互聊天\
文件 90112 2019-07-03 11:18 多端口服务器多个客户端相互聊天\Client.exe
文件 4612 2019-07-03 11:18 多端口服务器多个客户端相互聊天\MyClient.cpp
文件 9470 2019-07-03 11:07 多端口服务器多个客户端相互聊天\MyServer.cpp
文件 120320 2019-07-03 11:07 多端口服务器多个客户端相互聊天\Server.exe
目录 0 2019-07-01 11:10 多端口服务器多个客户端相互聊天\纯c++聊天服务器及客户端\
文件 88576 2019-06-30 18:35 多端口服务器多个客户端相互聊天\纯c++聊天服务器及客户端\Client.exe
文件 3991 2019-06-30 18:35 多端口服务器多个客户端相互聊天\纯c++聊天服务器及客户端\MyClient.cpp
文件 7539 2019-06-30 19:05 多端口服务器多个客户端相互聊天\纯c++聊天服务器及客户端\MyServer.cpp
文件 112640 2019-07-01 10:33 多端口服务器多个客户端相互聊天\纯c++聊天服务器及客户端\Server.exe
- 上一篇:Qt 仿QQ图片查看器
- 下一篇:短信轰炸机电脑版源码.e
相关资源
- VisualStudioUninstaller vs卸载工具
- 组态王驱动开发包3.0.0.7(中文)
- 多窗口后台鼠标连点器
- 使用选择性重传协议实现UDP可靠通信
- VC 获得文件属性 获取文件的创建时
- 读者写者问题(读者优先,写者优先
- 用VC 编写的仿QQ聊天室程序源代码
- 外点法程序
- 外罚函数程序
- qt-电子点菜系统
- 推箱子及人工智能寻路C 源代码
- 自己写的航空订票系统c 版--数据结构
- 数据结构实验魔王语言
- MUSIC算法c 实现
- C 餐厅叫号系统(QT平)
- 国际象棋c 完整版
-
ob
jectARX给Auto CAD加工具条 - 画图程序MFC/VC/VC CRectTracker 串行化
- MFC网络编程实例
- c 课程设计 职工信息管理系统
- VC 游戏编程—附源代码
- IpHlpApi.h&IpHlpApi.lib
- 清华大学 c 郑莉 ppt课件
- c 程序判断离散数学中命题公式
- 多项式求和(数据结构C 版)
- vc 6.0开发的流程图编辑器
- VC 天空盒(skyBox)实现(附源代码)
- c MFC 画多边形
- 用C 实现的对网络上的ARP数据包进行
- Microsoft基本类库 (MFC)(C 库)
评论
共有 条评论