資源簡介
linux聊天室 實現了 具名注冊,具名/匿名登錄,公聊,私聊
另課程設計報告也一并完成。
客戶/服務器模式

代碼片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include“wrap.h“
#include“define.h“
#include“thread.h“
#include“welcome.h“
void?*read_server(void?*);
void?welcome();
void?welcome_regist(int?);
int?welcome_login();
void?deal_user_info(char?*?char?*);
void?*deal_log_in(void?*arg);
void?welcome_chat();
/*********************************************************************
函數名:main()
函數功能:初始化聊天室信息,接受用戶的選擇
傳入參數:無
傳出參數:無
返回值:無
*********************************************************************/
int?main(int?argc?char?*argv[])
{
char?ip[100];
if?(?argc?==?1?)
{
strcpy(ip?“127.0.0.1“);
}
else?if?(?argc?==?2?)
{
strcpy(ip?argv[1]);
}
else
{
printf(“Usage?:?<%s?ip>\n“?argv[0]);
exit(1);
}
char?opt[20];
//??int?c;
int?nread;
int?sockfd;
int?connfd;
????struct?sockaddr_in?server;
sockfd?=?Socket(AF_INET?SOCK_STREAM?0);
server.sin_family?=?AF_INET;
server.sin_port?=?htons(SERVER_PORT);
server.sin_addr.s_addr?=?inet_addr(ip);
connfd?=?connect(sockfd?(?struct?sockaddr?*)(&server)?sizeof(server));
if?(?connfd?0?)
{
?perror(“connect?error!“);
?exit(1);
}
????
while?(1)
{
welcome();
nread?=?read(1?opt?20);
if?(?nread?1?||?nread?>?20?)
{
printf(“請輸入正確的長度\n“);
}
int?c?=?atoi(opt);
switch?(?c?)
{
case?10:
// welcome_anonymous_regist(sockfd);
break;
case?11:
welcome_regist(sockfd);
break;
case?20:
welcome_anonymous_regist(sockfd);
welcome_anonymous_login(sockfd);
break;
case?21:
welcome_login(sockfd);
break;
case?88:
exit(0);
break;
default:
????printf(“你輸入的序號不正確,請重新輸入\n“);
break;
}
}
return?0;
}
/************************************************************
函數名:deal_user_info()
函數說明:處理用戶信息,將用戶名和密碼打包
傳入參數:char類型的指針name
??????????char類型的指針passwd
傳出參數:無
返回值:無
************************************************************/
void?deal_user_info(char?*name?char?*passwd)
{
name[strlen(name)-1]?=?‘\0‘;
strcat(name?“:“);
strcat(namepasswd);
name[strlen(name)-1]?=?‘\0‘;
}
/***********************************************************
文件名:client1.c
函數名:analyse_send_msg()
函數說明:該函數將從終端輸入的消息解析出來,將解析后的結果存
??????????放在send_buf中。
傳入參數:Msg類型的指針send_buf.
??char類型的指針msg.
傳出參數:Msg類型的指針send_buf
返回值:1或0.
***********************************************************/
int?analyse_send_msg(Msg?*send_buf?char?*msg)
{
int?counter?=?0;//計算命令和消息之間的空格個數
int?i?=?0;//數組下標
msg[?strlen(msg)-1?]?=?‘\0‘;//將msg中的‘\n’轉化為‘\0‘
????if?(?*msg?==?‘/‘?)//如果是對某人說話
{
????????send_buf->option?=?TOSB;//設置option為TOSB
/*該循環判斷用戶輸入的命令和消息之間是否有空格*/
while?(?msg[i]?!=?‘\0‘?)
{
if?(?msg[i]?==?‘?‘?)
{
counter++;
}
i++;
}
/*如果輸入的命令和消息之間沒有空格則返回錯誤*/
if?(?counter?==?0?)
{
return?FAILURE;
}
????msg?=?msg?+?1;//使msg指向‘/’后面一個字符
strcpy(send_buf->message?msg);
// printf(“
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2012-06-17?17:03??code\
?????文件??????502720??2012-06-04?13:04??code\C?網絡程序設計?課程設計.pptx
?????目錄???????????0??2012-06-14?11:35??code\makefile_chatcode\
?????目錄???????????0??2012-06-12?15:04??code\makefile_chatcode\client\
?????文件????????4733??2012-06-11?15:37??code\makefile_chatcode\client\client1.c
?????文件????????1315??2010-09-26?18:13??code\makefile_chatcode\client\client_msg.txt
?????文件?????????330??2012-06-08?17:07??code\makefile_chatcode\client\define.h
?????文件?????????319??2012-06-12?15:02??code\makefile_chatcode\client\Makefile
?????文件????????3302??2010-09-26?18:13??code\makefile_chatcode\client\thread.c
?????文件??????????62??2010-09-26?18:13??code\makefile_chatcode\client\thread.h
?????文件????????8814??2012-06-12?13:38??code\makefile_chatcode\client\welcome.c
?????文件?????????185??2012-06-08?16:00??code\makefile_chatcode\client\welcome.h
?????文件????????2916??2010-09-26?18:13??code\makefile_chatcode\client\wrap.c
?????文件?????????673??2010-09-26?18:13??code\makefile_chatcode\client\wrap.h
?????文件?????????363??2012-06-17?17:02??code\makefile_chatcode\readme.txt
?????文件?????????311??2012-06-12?15:10??code\makefile_chatcode\readme.txt.bak
?????目錄???????????0??2012-06-17?17:02??code\makefile_chatcode\server\
?????文件????????2041??2012-06-10?22:21??code\makefile_chatcode\server\add_online_user.c
?????文件?????????481??2012-06-10?22:21??code\makefile_chatcode\server\add_online_user.h
?????文件????????2436??2012-06-11?10:26??code\makefile_chatcode\server\add_online_user.o
?????文件?????????310??2012-06-10?22:21??code\makefile_chatcode\server\define.h
?????文件?????????358??2012-06-10?23:00??code\makefile_chatcode\server\Makefile
?????文件?????????359??2012-06-10?22:21??code\makefile_chatcode\server\Makefile~
?????文件??????????64??2012-06-10?22:21??code\makefile_chatcode\server\parse_message.c
?????文件?????????278??2012-06-10?22:21??code\makefile_chatcode\server\parse_message.h
?????文件????????5317??2012-06-10?22:21??code\makefile_chatcode\server\read_reg_user.c
?????文件?????????412??2012-06-10?22:21??code\makefile_chatcode\server\read_reg_user.h
?????文件????????2956??2012-06-11?10:26??code\makefile_chatcode\server\read_reg_user.o
?????文件?????????118??2012-06-12?13:42??code\makefile_chatcode\server\record.txt
?????文件?????????117??2012-06-12?11:06??code\makefile_chatcode\server\record.txt~
?????文件???????22159??2012-06-11?10:26??code\makefile_chatcode\server\server
............此處省略10個文件信息
- 上一篇:mui 商城案例
- 下一篇:bootstrap-table插件相關的css和js文件
評論
共有 條評論