资源简介
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文件
相关资源
- crf++0.58.tar.gz
- linux系统函数说明手册
- 博通无线网卡驱动linux版
- netperf-2.6.0.tar.gz
- linux 5 sendmail电子邮件服务器.ppt
- LINUX下PL2303HX驱动的安装及串口使用
- Linux网络编程-网络基础-socket编程-高并
- Linux下QT串口通信
- Rockchip RK3399 软件开发指南.pdf
- malloclab-handout.tar
- AT25SF081驱动
- 跟老男孩学linux三剑客命令V1.5
- 宋宝华源码《Linux设备驱动开发详解
- 基于嵌入式Linux的RFID读卡器的驱动程
- vgg_generated_48,vgg_generated_64,vgg_gene
- 2711_1p0- 树莓派4B 芯片手册.pdf
- Linux编程手册-多线程-详细资料.rar
- 西农Linux实习含详细实习报告
- CRF++ toolkit 0.58
- Linux餐厅点菜系统基于Linux 下QT数据库
- redis-3.0.0.tar.gz
- linux usb core driver源码分析
- 图书管理系统简单的“文件”实现数
- 嵌入式linux下QT开发的wifi源码
- 鸟哥私房菜PPT-经典的linux学习资料
- 黑马_Linux网络编程-网络基础-socket编程
- Linux大作业
- 智能家居实训项目 所使用的第三方库
- 小区电动车充电桩设备.zip
- [课件] linux入门基础ppt
评论
共有 条评论