资源简介
1.实现了基本的聊天功能,包括群聊与私聊
2.用户注册时使用文件做过渡,用户退出登陆时仍可保留用户信息
3.封装消息传递时格式,包括消息的生成与解析
4.友好的操作逻辑
5.多方位错误提醒
代码片段和文件信息
//////////////////////////////////////////////////////////////////////////
// UDPClient.cpp
#include
#include
#include
#include
#include
#define BUF_SIZE 1024
#define name_Length 50
using namespace std;
namespace message{
std::string getTime(){
time_t timep;
time (&timep);
char tmp[64];
strftime(tmp sizeof(tmp) “%Y-%m-%d %H:%M:%sSocket“localtime(&timep) );
return tmp;
}
bool messagesGenerate(char* meschar* senderchar* receiverchar* message){
int nameLen = strlen(sender)mesLen = strlen(message)recLen = strlen(receiver);
if(nameLen > name_Length - 1) nameLen = name_Length - 1;
if(recLen > name_Length - 1) recLen = name_Length - 1;
if(mesLen > BUF_SIZE - 2*name_Length -1) mesLen = BUF_SIZE - 2*name_Length -1;
int i;
for(i = 0;i < nameLen;i ++) mes[i] = sender[i];
mes[i] = ‘\0‘;
for(i = 0;i < recLen;i ++) mes[i+name_Length] = receiver[i];
mes[i+name_Length] = ‘\0‘;
for(i = 0;i < mesLen;i ++) mes[i+2*name_Length] = message[i];
mes[i+name_Length*2] = ‘\0‘;
return true;
}
bool messagesGenerate(char* meschar* senderchar* receiverchar* messagechar * passwd){
int nameLen = strlen(sender)mesLen = strlen(message)recLen = strlen(receiver)passLen = strlen(passwd);
if(nameLen > name_Length - 1) nameLen = name_Length - 1;
if(recLen > name_Length - 1) recLen = name_Length - 1;
if(mesLen > BUF_SIZE - 2*name_Length -1) mesLen = BUF_SIZE - 2*name_Length -1;
if(passLen > BUF_SIZE - 3*name_Length -1) passLen = BUF_SIZE - 3*name_Length -1;
int i;
for(i = 0;i < nameLen;i ++) mes[i] = sender[i];
mes[i] = ‘\0‘;
for(i = 0;i < recLen;i ++) mes[i+name_Length] = receiver[i];
mes[i+name_Length] = ‘\0‘;
for(i = 0;i < mesLen;i ++) mes[i+2*name_Length] = message[i];
mes[i+name_Length*2] = ‘\0‘;
for(i = 0;i < passLen;i ++) mes[i+3*name_Length] = passwd[i];
mes[i+name_Length*3] = ‘\0‘;
return true;
}
bool getSender(char* meschar *sender){
for(int i = 0;i < name_Length;i ++){
sender[i] = mes[i];
if(sender[i] == ‘\0‘) return true;
if(i == name_Length) return false;
}
return true;
}
bool getReceiver(char* meschar *receiver){
for(int i = 0;i < name_Length;i ++){
receiver[i] = mes[i+name_Length];
if(receiver[i] == ‘\0‘) return true;
if(i == name_Length) return false;
}
return true;
}
bool getMessage(char* meschar* mess){
for(int i = 0;i < BUF_SIZE - 2*name_Length;i ++){
mess[i] = mes[i+name_Length*2];
if(mess[i] == ‘\0‘) return true;
if(i == BUF_SIZE - 2*name_Length) return false;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1088686 2018-03-27 11:11 udp-3\testClient\bin\Debug\testClient.exe
文件 561152 2018-03-27 01:42 udp-3\testClient\bin\Release\testClient.exe
文件 11650 2018-03-27 11:11 udp-3\testClient\main.cpp
文件 43942 2018-03-27 11:11 udp-3\testClient\obj\Debug\main.o
文件 9909 2018-03-27 01:42 udp-3\testClient\obj\Release\main.o
文件 1115 2018-03-19 19:49 udp-3\testClient\testClient.cbp
文件 278 2018-03-27 11:23 udp-3\testClient\testClient.depend
文件 361 2018-03-27 11:41 udp-3\testClient\testClient.layout
文件 1085485 2018-03-27 11:36 udp-3\testScreen\bin\Debug\testScreen.exe
文件 559616 2018-03-27 01:42 udp-3\testScreen\bin\Release\testScreen.exe
文件 7514 2018-03-27 11:36 udp-3\testScreen\main.cpp
文件 38907 2018-03-27 11:36 udp-3\testScreen\obj\Debug\main.o
文件 6526 2018-03-27 01:42 udp-3\testScreen\obj\Release\main.o
文件 1115 2018-03-20 00:40 udp-3\testScreen\testScreen.cbp
文件 278 2018-03-27 11:23 udp-3\testScreen\testScreen.depend
文件 437 2018-03-27 11:41 udp-3\testScreen\testScreen.layout
文件 1162417 2018-03-27 11:32 udp-3\testServer\bin\Debug\testServer.exe
文件 31 2018-03-27 00:39 udp-3\testServer\bin\Debug\userList - 副本.txt
文件 69 2018-03-27 09:54 udp-3\testServer\bin\Debug\userList.txt
文件 14582 2018-03-27 11:32 udp-3\testServer\main.cpp
文件 148035 2018-03-27 11:32 udp-3\testServer\obj\Debug\main.o
文件 20901 2018-03-27 01:30 udp-3\testServer\obj\Release\main.o
文件 1080 2018-03-19 19:48 udp-3\testServer\testServer.cbp
文件 301 2018-03-27 11:23 udp-3\testServer\testServer.depend
文件 362 2018-03-27 11:41 udp-3\testServer\testServer.layout
文件 21 2018-03-27 00:00 udp-3\testServer\userList.csv
文件 30 2018-03-27 01:09 udp-3\testServer\userList.txt
文件 8613 2018-03-26 21:11 udp-3\testServer\userList.xlsx
目录 0 2018-03-27 11:11 udp-3\testClient\bin\Debug
目录 0 2018-03-27 01:42 udp-3\testClient\bin\Release
............此处省略22个文件信息
- 上一篇:Repast Simphony 使用指南
- 下一篇:PID教程非常好的PID控制介绍
相关资源
- linux多人聊天室管理系统
- 基于winsock的聊天室程序
- SignalR 实现聊天室通信功能
- QT 自制聊天室 界面如QQ
- 基于Application和session的聊天室
- linux下的聊天室
- 南阳理工学院Linux聊天室课程设计
- 聊天室源代码struts2+spring+hibernate
- 某视频聊天室源码-服务端+客户端+网
- 仿QQ聊天室,绝对干货
- Unity+VS+Socket实现聊天室
- b/s版聊天室
- VS2010聊天室的开发
- QQ聊天室 包括私聊功能
- 开奖计划聊天室源码_财经彩票直播聊
- webrtcDemo150521
- QT tcp 聊天室
- 北京科技大学自动化学院小学期多人
- 系统编程的网络聊天室项目
- Linux下C实现的聊天室.rar
- Qt实现的简易局域网聊天室的Demo
- CSocket多线程聊天室源码
- QQ聊天室专为广大学习的朋友制作
- 一个更加完善的SignalR服务端,本人已
- 楚天江湖9.0加强版
- 基于socket网络编程的聊天室
- Linux下聊天室实现基于C
- web聊天室源码
- 网络编程 C 基于TCP/IP协议的聊天室源
- 用qt4编写的聊天室
评论
共有 条评论