资源简介
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控制介绍
相关资源
- 通信软件的具体实例──基于Socket的
- 用VC 编写的仿QQ聊天室程序源代码
- 基于CSocket的多人聊天室
- mfc聊天室
- irc聊天室
- 易语言服务器源码易语言简易聊天室
- SignalR net版本的在线聊天室
- linux网络聊天室
- 基于ajax的web聊天室
- FLASH局域网免服务器P2P聊天室源码(
- 易语言聊天室客户源码易语言聊天室
- 基于QTsocket的局域网聊天室
- ActiveMQ实战——实现一个简易版的聊天
- 局域网多人语音聊天
- nodejs聊天室
- Socket实现一对一聊天
- QT制作的QQ聊天室
- 基于socket的简易多人聊天室
- Qt局域网聊天室.zip
- 基于嵌入式LINUX的网络聊天室的设计
- tomcat实现websocket聊天室
- 网络聊天室源代码
- 进程通信设计----聊天室
- syc的vc局域网聊天室源码
- springboot+websocket实现聊天室
- 网络聊天室VC 6.0
- 红蜻蜓聊天室4.00
- websocket 1V1聊天室
- 局域网简易聊天室+基于QT4.8.3+源码
- 简单的在线聊天室实现群聊和单聊,
评论
共有 条评论