資源簡介
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?????????mes[i]?=?‘\0‘;
????????for(i?=?0;i?????????mes[i+name_Length]?=?‘\0‘;
????????for(i?=?0;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?????????mes[i]?=?‘\0‘;
????????for(i?=?0;i?????????mes[i+name_Length]?=?‘\0‘;
????????for(i?=?0;i?????????mes[i+name_Length*2]?=?‘\0‘;
????????for(i?=?0;i?????????mes[i+name_Length*3]?=?‘\0‘;
????????return?true;
????}
????bool?getSender(char*?meschar?*sender){
????????for(int?i?=?0;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?????????????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?????????????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控制介紹
評論
共有 條評論