设计聊天室实验报告.doc

设计聊天室实验报告.doc

ID:57174468

大小:235.50 KB

页数:17页

时间:2020-08-05

设计聊天室实验报告.doc_第1页
设计聊天室实验报告.doc_第2页
设计聊天室实验报告.doc_第3页
设计聊天室实验报告.doc_第4页
设计聊天室实验报告.doc_第5页
资源描述:

《设计聊天室实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、.设计性实验项目简介实验课程名称TCP/IP协议分析实验项目名称聊天室实验项目性质1、综合性2、设计性√主讲教师开课年级开课专业实验地点开课日期开课时间实验项目简介:实验目的(1)通过编写聊天室的功能理解socket模型下客户端和服务器的编写(2)通过自己增加私聊的功能练习网络编程的方式(3)掌握Linux平台网络数据的传送方法。实验内容(1)编写聊天室的客户端和服务器端,客户端主要功能是发送信息,服务器端的主要功能是将客户端发的内容转发到除发送端以外的所有客户端,实现客户端和客户端的通信。(2)编写基于原始套接字的网络通信原型系统;实验条件学院提供网络实验室,1台/学生微型计算机,安装有Li

2、nux虚拟机。实验原理..实验中,客户应用程序向服务器程序请求服务。服务进程一直处于休眠状态,直到一个客户向这个服务的地址提出了连接请求。在这个时刻,服务程序被"惊醒"并且为客户提供服务-对客户的请求作出适当的反应。  服务器部分:1.首先判断客户端的用户是不是第一个登陆,对于第一次登陆的用户后面加上“/”,首先判断user_link是否为有位置,有的话并把username写入,usercount设置为1,并转发出xxjointheroom。2.对于登陆过的用户可惜相互通讯,客户端写入信息发给服务器端,服务器端转发出去。3.对于输出用户功能,客户端输入“list”,服务器通过比较给客户端传输全

3、部的用户。4.对于私聊功能,通过“*”符号进行判断,利用指针取出“*”之后的名字,只对该名字进行转发。servse.c服务器端代码#include#include#include#include#include#include"chat.h"intinit_ser(int);voidset_name(char*line,char*name){strcpy(name,&line[1]);sprintf(line,"%sjointheroom",name);}voidadd_name(c

4、har*line,char*name)..{chartheline[MAX_LINE];strcpy(theline,name);strcat(theline,":");strcat(theline,line);strcpy(line,theline);}intuser_free(intuser_link[MAX_CLIENT]){inti=0;while((user_link[i]!=0)&&(i

5、er_link[MAX_CLIENT];intuserfd[MAX_CLIENT];charusername[MAX_CLIENT][MAX_NAME];charline[MAX_LINE];intuserCount;..unsignedintcli_len;structsockaddr_incli_addr;FILE*file;intport,i,j,k,l;intlength;charname[MAX_LINE];charcmpstr[MAX_LINE];charlinestr[MAX_LINE];char*ps,*pt,*pr;char*pl,*pn;file=fopen("config

6、","r");fgets(line,MAX_LINE,file);fscanf(file,"%d",&port);fclose(file);printf("%d",port);sockfd=init_ser(port);if(sockfd==0){printf("Initseversocketerror");fflush(stdout);//exit(1);}//Socketinitdonelisten(sockfd,MAX_CLIENT);..cli_len=sizeof(cli_addr);for(i=0;i

7、ame[i][0]='';}userCount=0;fcntl(sockfd,F_SETFL,O_NONBLOCK);for(;;){if((userCount=user_free(user_link))>=0){new_sockfd=accept(sockfd,(structsockaddr*)&cli_addr,&cli_len);fcntl(new_sockfd,F_SETFL,O_NO

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。