資源簡介
網絡編程 基于TCP/IP協議的 聊天室代碼 可直接運行 支持單對單聊天和群聊
代碼片段和文件信息
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#define?IP?127.0.0.1
#define?PORT?5678
struct?user??????????????//用戶結構體
{
????char?Username[20];
????char?Passwd[20];
????int??cmd;
????int?flag;
????char?Nickname[20];
????char?target_user[20];
????char?content[50];
????int?sockfd;
????int?ID;
};
struct?user?user;
int?socketfd;
void?FuncInterface(int?sockfd);????//功能界面
void?End()
{????
????printf(“\t\t\033[33;32m?please?any?key?to?continue...?\033[0m\n\n“);
????printf(“\t\t“);?
????while(getchar()!=‘\n‘);
????getchar();
}
void?Login(int?sockfd)?????//登陸界面
{
????char?buf[20];
????system(“clear“);
????printf(“\t\t\033[33;32m**************************************************\033[0m??\n“);
????printf(“\t\t\033[33;32m????**********歡迎登入HGC聊天室****************???\033[0m\n“);
????printf(“\t\t\033[33;32m???*?||????????????????????????????????????||?*???\033[0m?\n“);
????printf(“\t\t\033[33;32m??*??||????????????????????????????????????||??*??\033[0m?\n“);
????printf(“\t\t\033[33;32m?*???||???請輸入用戶名:???????????????????||???*?\033[0m“);
????scanf(“%s“user.Username);
????printf(“\t\t\033[33;32m*????||????????????????????????????????????||????*\033[0m???\n“);
????printf(“\t\t\033[33;32m?*???||???請輸入密碼:??????????????????????||???*?\033[0m“);
????scanf(“%s“user.Passwd);
????printf(“\t\t\033[33;32m??*??||????????????????????????????????????||??*??\033[0m???\n“);
????printf(“\t\t\033[33;32m???*?||????????????????????????????????????||?*???\033[0m???\n“);
????printf(“\t\t\033[33;32m????******************************************????\033[0m??\n“);
????printf(“\t\t\033[33;32m**************************************************\033[0m??\n“);
????write(sockfd&usersizeof(user));
????read(sockfdbufsizeof(buf));
????if(strcmp(buf“ok“)==0)
????????{
????????sleep(1);
????????FuncInterface(sockfd);
????????}
????else?if(strcmp(buf“fail“)==0)
????{
????????printf(“\n\n“);
????????printf(“\t\t\033[33;32m@_@登陸失敗!!!?\033[0m\n\n“);
????????End();
????}
}
void?*pth_read()
{
????int?runcond?=?1;
????int?result;
????char?pth_buf[100];
????
????while(runcond)
????{
????????if(0?>?(result?=?read(socketfdpth_bufsizeof(pth_buf))))
????????{
????????????fprintf(stderr“Read?Error:%s\n“strerror(errno));
????????}
????????printf(“\n%s\n“pth_buf);
????}
????pthread_exit(NULL);
}
int?MainInterface(int?sockfd)???//主界面
{
????system(“clear“);
????printf(“\t\t\033[33;32m???????????????????????***????\033[0m\n“);
????printf(“\t\t\033[33;32m???????????????????????*????\033[0m\n“);
????printf(“\t\t\033[33;32m?????????********?????*??????********??????\033[0m\n“);
????printf(“\t\t\033[33;32m??????**************??*???**************???????\033[0m\n“);
????printf(“\t\t\033[33;32m???**************************
- 上一篇:6G無線熱點技術研究白皮書.pdf
- 下一篇:mcgs與常見PLC連接方法
評論
共有 條評論