设计聊天室 实验报告

合集下载

聊天室 实验报告

聊天室 实验报告

聊天室实验报告聊天室实验报告引言:随着互联网的迅速发展,人们之间的交流方式也在不断改变。

聊天室作为一种虚拟的交流平台,已经成为了人们日常生活中不可或缺的一部分。

本实验旨在探究聊天室对人们社交行为的影响,并分析其中的优势和劣势。

一、聊天室的优势1.1 跨越地域限制聊天室通过互联网的连接,使得人们可以随时随地与世界各地的人进行交流。

这种跨越地域限制的特点,使得人们可以结识更多来自不同文化背景的朋友,拓宽了自己的社交圈子。

1.2 匿名性在聊天室中,人们可以使用匿名的身份进行交流。

这种匿名性给予了人们更大的自由度,可以更加坦诚地表达自己的想法和感受。

同时,匿名性也减少了人们之间的偏见和歧视,使得交流更加平等和包容。

1.3 丰富的交流形式聊天室提供了多种多样的交流形式,包括文字、语音、视频等。

人们可以根据自己的需求选择合适的交流方式,使得交流更加便捷和多样化。

这种丰富的交流形式也增加了人们之间的沟通效率和质量。

二、聊天室的劣势2.1 虚拟性聊天室的交流是基于虚拟平台的,人们无法真正感受到对方的存在和情感。

这种虚拟性可能导致人们在交流中缺乏真实性和深度,无法建立起真正的信任和情感连接。

2.2 信息安全问题在聊天室中,人们往往需要提供一些个人信息,如账号、密码等。

这些信息的泄露可能会导致个人隐私的泄露和安全问题的产生。

因此,在使用聊天室时,人们需要注意保护个人信息的安全。

2.3 信息过载聊天室中的信息量庞大,人们往往需要花费大量的时间和精力来筛选和处理信息。

这种信息过载可能会导致人们的压力增加,影响到正常的社交行为和生活秩序。

三、聊天室的应用领域3.1 商业交流聊天室在商业领域中得到了广泛的应用。

通过聊天室,企业可以与客户进行实时交流,了解客户需求,并及时解决问题。

同时,聊天室也为企业提供了一个广告宣传的平台,可以快速传播信息,提升品牌知名度。

3.2 学术交流聊天室在学术领域中也发挥着重要的作用。

学者们可以通过聊天室分享研究成果、讨论学术问题,促进学术交流和合作。

c聊天室实验报告

c聊天室实验报告

c聊天室实验报告C聊天室实验报告引言:近年来,随着互联网的迅猛发展,人们的社交方式也发生了巨大的变化。

传统的面对面交流逐渐被网络聊天取代,人们可以通过各种聊天软件与朋友、家人以及陌生人进行交流。

为了更好地了解网络聊天的特点和影响,我们进行了一项C聊天室实验。

实验目的:1. 研究网络聊天的特点和模式;2. 探讨网络聊天对人际关系的影响;3. 分析网络聊天对个人心理状态的影响。

实验过程:我们在实验室中创建了一个C聊天室,邀请了一些志愿者参与。

志愿者们通过该聊天室进行交流,并记录他们的聊天内容、时间和心理感受。

实验持续了一周时间,每天志愿者们都会在特定时间段内进行聊天。

实验结果:1. 匿名性的影响:与传统面对面交流不同,网络聊天室中的参与者可以选择匿名身份,这种匿名性使得人们更加敢于表达自己的观点和情感。

在实验中,我们发现志愿者们在聊天室中更加开放和直接,他们更愿意分享自己的经历和感受,与陌生人建立起了亲密的关系。

2. 社交范围的扩大:网络聊天室打破了地域和时间的限制,使得人们可以与来自世界各地的人进行交流。

在实验中,我们观察到志愿者们与来自不同国家和文化背景的人进行了深入的交流,他们分享了彼此的生活经历和文化差异,这种跨越时空的交流丰富了他们的社交圈子。

3. 沟通方式的变化:与传统的面对面交流相比,网络聊天室中的沟通方式更加多样化。

通过表情符号、图片、语音和视频等多种方式,人们可以更准确地传达自己的情感和意图。

在实验中,我们发现志愿者们更喜欢使用表情符号和图片来表达自己的情感,这种非语言的沟通方式使得交流更加生动和有趣。

4. 心理状态的影响:网络聊天室的使用对个人的心理状态有一定的影响。

在实验中,我们发现志愿者们在聊天室中经历了情绪的波动,有时他们感到兴奋和愉悦,有时又感到孤独和焦虑。

这种心理状态的变化与聊天内容、聊天对象以及聊天时长等因素有关。

结论:通过C聊天室实验,我们深入了解了网络聊天的特点和影响。

聊天室系统设计报告

聊天室系统设计报告

聊天室系统设计报告青岛科技大学操作系统课程设计学生班级计算机132班学生学号1308010204学生姓名王永远2016 5 18______年 ___月 ___日设计题目:聊天室系统一、设计目的及要求1.1设计目的通过该聊天室系统,掌握网络编程的概念及基于网络的C/S模式软件系统开发,掌握基于TCP协议的Socket编程,掌握Java的多线程机制。

1.2设计要求:实现多个用户之间类似于QQ的聊天程序,有聊天界面,多用户之间既可以实现群聊,也可以单独聊天。

二、技术背景2.1网络编程就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换。

2.2网络通信(1)IP地址:网络中设备的标识,不易记忆,可用主机名要想让网络中的计算机能够互相通信,必须为每台计算机指定一个标识号,通过这个标识号来指定要接受数据的计算机和识别发送的计算机,在TCP/IP协议中,这个标识号就是IP地址。

(2)端口号:用于标识进程的逻辑地址物理端口网卡口逻辑端口我们指的就是逻辑端口A:每个网络程序都会至少有一个逻辑端口B:用于标识进程的逻辑地址,不同进程的标识C:有效端口:0~65535,其中0~1024系统使用或保留端口。

(3)传输协议:通信的规则,常见的有UDP,TCP UDP:将数据源和目的封装成数据包中,不需要建立连接;每个数据报的大小在限制在64k;因无连接,是不可靠协议;不需要建立连接,速度快。

TCP:建立连接,形成传输数据的通道;在连接中进行大数据量传输;通过三次握手完成连接,是可靠协议;必须建立连接,效率会稍低。

2.3 Socket(1)Socket套接字网络上具有唯一标识的IP地址和端口号组合在一起才能构成唯一能识别的标识符套接字。

(2)Socket原理机制A:通信的两端都有Socket。

B:网络通信其实就是Socket间的通信。

C:数据在两个Socket间通过IO传输。

2.4 TCP传输(1)客户端思路A建立客户端的Socket服务,并明确要连接的服务器。

基于androidstudio的聊天室实验报告

基于androidstudio的聊天室实验报告

基于androidstudio的聊天室实验报告通过利用Android Studio设计和开发一个简单的聊天室应用程序,熟悉Android开发的基本步骤和技巧,并掌握使用Android Studio进行应用开发的方法。

实验背景:随着智能手机的普及,移动应用程序的需求日益增加。

聊天室应用程序是一种常见的移动应用程序,可以实现用户之间的实时聊天功能。

本实验旨在通过开发一个基于Android Studio的聊天室应用程序,学习并实践Android开发的各种技术和方法。

实验要求:1. 设计并开发一个基于Android Studio的聊天室应用程序。

2. 实现用户注册和登录功能。

3. 实现实时聊天功能,可以发送和接收消息。

4. 可以显示聊天记录。

5. 能够实时检测用户的在线状态。

实验过程:1. 设计聊天室应用程序的界面。

使用Android Studio的布局编辑器进行界面的设计,包括登录界面、注册界面、聊天界面等。

2. 创建一个数据库,用于存储用户信息和聊天记录。

使用SQLite数据库进行创建和管理。

3. 实现用户注册和登录功能。

通过数据库实现用户的注册和登录操作,确保用户的身份信息安全。

4. 实现实时聊天功能。

通过Socket编程技术实现客户端和服务器之间的实时通信,实现用户之间的实时聊天功能。

5. 实现显示聊天记录功能。

从数据库中读取聊天记录,并显示在聊天界面上。

6. 实现在线状态检测功能。

通过心跳包等机制实现用户在线状态的检测和显示。

实验结果:成功开发了一个基于Android Studio的聊天室应用程序。

用户可以注册和登录,实现实时聊天功能,并显示聊天记录。

能够实时检测用户的在线状态。

实验心得:通过本实验,我初步了解了Android开发的基本步骤和技巧,并掌握了使用Android Studio进行应用开发的方法。

通过实践,我进一步巩固了Android应用程序的设计和开发的知识,提高了自己的实际动手能力。

聊天室程序设计报告

聊天室程序设计报告

实验5 掌握简单的网络通讯技术实验6 掌握基于典型协议的的网络通讯技术一实验目的1.熟悉Socket的通讯机制,了解网络程序的设计方法。

2. 熟悉典型协议的通讯机制,掌握基于它们的网络系统设计方法。

如TCP、UDP。

二实验环境1.Windows72.Visual C++ 6.0三实验程序设计1.实验原理1.C/S模式C/S模式是指一个服务器同时为多个客户端服务。

并发性是C/S模式的的基础,正是由于并发性的支持,多个客户端能够获得同一种服务,而不必等待服务器完成对上一个请求的处理。

在C/S模式中,当请求到达服务器时,服务器将它交给一个控制线程,它能与已有的线程并发的执行。

在设计并发服务器时,一般服务器代码由两部分组成,第一部分代码负责监听并接收客户端的请求,还负责为客户端请求创建新的服务线程;另一部分代码负责处理单个客户机请求,如与客户机交换数据,提供具体服务。

下图所示为服务器创建多个线程来为多个客户机服务。

2.基于TCP的socket通信服务器与客户端是通过套接字来进行通信的。

在基于TCP的网络通信程序中,首先服务器端通过socket()函数创建套接字,然后通过bind()函数来命名套接字,调用listen()函数开启服务器端的监听。

接着执行accept()函数来接收客户的连接,服务器阻塞等待客户连接请求,直到有客户请求连接。

客户端创建套接字,接着通过connect()函数请求连接服务器,连接成功后,就可以与服务器进行通信了。

服务器与客户机通过send()各recv()调用来进行信息的发送和接收。

只有当有信息可接收时,recv()才返回,否则将阻塞。

通信完后,服务器和客户机各自通过closesocket()函数来关闭套接字。

注:以上讲的是阻塞模式。

下图所示的是基于TCP的网络通信模式。

服务器端对于连接套接字2.系统设计实验5要求在客户机和服务器传输图片和文件,如果是图片则显示,是文件则保存。

这个实验中的客户机与服务器可以没有区别,即可以采用对等的模式,双方既可以是服务器也可以是客户机。

聊天室实验报告

聊天室实验报告

聊天室实验报告聊天室实验报告一、引言在当今信息技术高速发展的时代,人们通过互联网进行交流已经成为一种常见的社交方式。

而聊天室作为一种在线交流平台,其便利性和互动性备受青睐。

本文旨在通过对聊天室实验的观察和分析,探讨聊天室对人际交往的影响以及其在社交领域的潜力。

二、实验设计为了深入研究聊天室对人际交往的影响,我们设计了一个实验。

实验中,我们邀请了一批参与者,将他们分为两组。

第一组在实验开始前接受一段时间的线上聊天室培训,而第二组则没有接受任何培训。

接下来,两组参与者将分别进入一个虚拟聊天室,进行一段时间的交流。

实验结束后,我们将对两组参与者的交流内容进行分析和比较。

三、实验结果通过对实验结果的分析,我们发现聊天室对人际交往有着积极的影响。

首先,参与者在聊天室中表现出更加开放和自信的态度。

相比于面对面交流,聊天室提供了一种相对匿名的环境,使参与者更容易表达自己的想法和情感。

其次,聊天室为人们提供了一个交流的平台,使得参与者可以与来自不同地区、不同文化背景的人进行互动。

这种跨文化的交流有助于拓宽参与者的视野,增加对不同文化的理解和尊重。

此外,聊天室还提供了一种随时随地交流的便利,使得人们可以更加方便地与朋友、家人以及陌生人进行交流。

四、聊天室的潜力聊天室作为一种在线交流平台,具有巨大的潜力。

首先,在社交领域,聊天室可以成为人们扩大社交圈子的重要工具。

通过聊天室,人们可以结识更多志同道合的朋友,分享彼此的兴趣爱好,甚至建立深厚的友谊。

其次,聊天室还可以成为信息传播和知识共享的重要渠道。

在聊天室中,人们可以交流各种话题,分享自己的见解和经验,从而促进知识的传播和共享。

此外,聊天室还可以成为商业推广和市场营销的有效手段。

通过聊天室,企业可以与消费者进行直接互动,了解他们的需求和反馈,从而提高产品和服务的质量。

五、聊天室的挑战和应对然而,聊天室也面临着一些挑战。

首先,聊天室的匿名性可能导致一些不良行为的发生,如网络欺凌和谣言传播等。

聊天室程序设计报告

实验5 掌握简单的网络通讯技术实验6 掌握基于典型协议的的网络通讯技术一实验目的1.熟悉Socket的通讯机制,了解网络程序的设计方法。

2. 熟悉典型协议的通讯机制,掌握基于它们的网络系统设计方法。

如TCP、UDP。

二实验环境1.Windows72.Visual C++ 6.0三实验程序设计1.实验原理1.C/S模式C/S模式是指一个服务器同时为多个客户端服务。

并发性是C/S模式的的基础,正是由于并发性的支持,多个客户端能够获得同一种服务,而不必等待服务器完成对上一个请求的处理。

在C/S模式中,当请求到达服务器时,服务器将它交给一个控制线程,它能与已有的线程并发的执行。

在设计并发服务器时,一般服务器代码由两部分组成,第一部分代码负责监听并接收客户端的请求,还负责为客户端请求创建新的服务线程;另一部分代码负责处理单个客户机请求,如与客户机交换数据,提供具体服务。

下图所示为服务器创建多个线程来为多个客户机服务。

2.基于TCP的socket通信服务器与客户端是通过套接字来进行通信的。

在基于TCP的网络通信程序中,首先服务器端通过socket()函数创建套接字,然后通过bind()函数来命名套接字,调用listen()函数开启服务器端的监听。

接着执行accept()函数来接收客户的连接,服务器阻塞等待客户连接请求,直到有客户请求连接。

客户端创建套接字,接着通过connect()函数请求连接服务器,连接成功后,就可以与服务器进行通信了。

服务器与客户机通过send()各recv()调用来进行信息的发送和接收。

只有当有信息可接收时,recv()才返回,否则将阻塞。

通信完后,服务器和客户机各自通过closesocket()函数来关闭套接字。

注:以上讲的是阻塞模式。

下图所示的是基于TCP的网络通信模式。

服务器端对于连接套接字2.系统设计实验5要求在客户机和服务器传输图片和文件,如果是图片则显示,是文件则保存。

这个实验中的客户机与服务器可以没有区别,即可以采用对等的模式,双方既可以是服务器也可以是客户机。

JAVA课程设计报告聊天室

JAVA课程设计报告聊天室一、课程目标知识目标:1. 学生能理解网络编程的基本概念,掌握JAVA Socket编程的基础知识。

2. 学生能运用面向对象编程思想,设计并实现聊天室客户端与服务器的数据传输功能。

3. 学生了解并掌握多线程技术在网络编程中的应用。

技能目标:1. 学生能运用所学知识,独立编写并调试简单的聊天室程序。

2. 学生具备分析问题、解决问题的能力,能针对聊天室程序进行优化和改进。

3. 学生能在团队协作中发挥自己的作用,与他人共同完成一个完整的网络编程项目。

情感态度价值观目标:1. 学生培养对计算机编程的兴趣,增强学习JAVA的自信心。

2. 学生认识到团队合作的重要性,培养良好的团队协作精神。

3. 学生通过编程实践,体验创新与创造的乐趣,培养积极向上的学习态度。

本课程针对高年级学生,结合课本内容,注重理论与实践相结合,以提高学生的实际编程能力为主要目标。

课程要求学生在掌握基本知识的基础上,能够独立完成实际项目,培养其分析问题、解决问题的能力。

同时,课程强调团队协作,使学生学会与他人共同进步,共同成长。

通过本课程的学习,使学生达到知识、技能和情感态度价值观的全面提升。

二、教学内容1. 网络编程基础理论:介绍网络编程的基本概念,包括IP地址、端口号、协议等,使学生理解网络通信的基本原理。

- 教材章节:第三章 网络编程基础2. JAVA Socket编程:讲解Socket编程的原理,指导学生掌握客户端与服务器之间的数据传输方法。

- 教材章节:第四章 Socket编程3. 面向对象编程:运用面向对象编程思想,设计聊天室程序,包括类的定义、封装、继承与多态。

- 教材章节:第二章 面向对象编程基础4. 多线程技术:介绍多线程编程的概念,分析在聊天室程序中如何实现多用户并发通信。

- 教材章节:第五章 多线程编程5. 聊天室程序设计与实现:指导学生完成聊天室客户端与服务器的编写,实现基本的功能需求。

聊天室程序设计报告

实验5 掌握简单的网络通讯技术实验6 掌握基于典型协议的的网络通讯技术一实验目的1.熟悉Socket的通讯机制,了解网络程序的设计方法。

2. 熟悉典型协议的通讯机制,掌握基于它们的网络系统设计方法。

如TCP、UDP。

二实验环境1.Windows72.Visual C++ 6.0三实验程序设计1.实验原理1.C/S模式C/S模式是指一个服务器同时为多个客户端服务。

并发性是C/S模式的的基础,正是由于并发性的支持,多个客户端能够获得同一种服务,而不必等待服务器完成对上一个请求的处理。

在C/S模式中,当请求到达服务器时,服务器将它交给一个控制线程,它能与已有的线程并发的执行。

在设计并发服务器时,一般服务器代码由两部分组成,第一部分代码负责监听并接收客户端的请求,还负责为客户端请求创建新的服务线程;另一部分代码负责处理单个客户机请求,如与客户机交换数据,提供具体服务。

下图所示为服务器创建多个线程来为多个客户机服务。

2.基于TCP的socket通信服务器与客户端是通过套接字来进行通信的。

在基于TCP的网络通信程序中,首先服务器端通过socket()函数创建套接字,然后通过bind()函数来命名套接字,调用listen()函数开启服务器端的监听。

接着执行accept()函数来接收客户的连接,服务器阻塞等待客户连接请求,直到有客户请求连接。

客户端创建套接字,接着通过connect()函数请求连接服务器,连接成功后,就可以与服务器进行通信了。

服务器与客户机通过send()各recv()调用来进行信息的发送和接收。

只有当有信息可接收时,recv()才返回,否则将阻塞。

通信完后,服务器和客户机各自通过closesocket()函数来关闭套接字。

注:以上讲的是阻塞模式。

下图所示的是基于TCP的网络通信模式。

客户机端服务器端对于监听套接字创建套接字:SOCKET()绑定套接字;BIND()创建套接字:SOCKET()启动监听:LISTEN()请求连接:CONNECT()接受客户的连接请求:ACCEPT()创建新的连接套接字发送数据:WRITE()处理服务器的响应读取数据:READ()关闭套接字:CLOSE()读取数据:READ()处理客户机的服务请求发送数据:WRITE()关闭套接字:CLOSE()关闭套接字:CLOSE()请求连接(第一次握手)接受连接(第二次握手)如果没有已经到达的连接请求,就阻塞,等待客户的连接请求请求服务器服务(第三次握手,同时发送数据)服务器发给客户机的响应对于连接套接字2.系统设计实验5要求在客户机和服务器传输图片和文件,如果是图片则显示,是文件则保存。

聊天室实验报告

聊天室实验报告聊天室实验报告在当今数字时代,人们通过各种社交媒体平台进行交流已经成为一种常态。

其中,聊天室作为一种虚拟社交工具,为人们提供了一个可以随时随地与他人交流的平台。

本次实验旨在探究聊天室对人们社交行为的影响,以及聊天室的优势和劣势。

实验过程中,我们邀请了一些志愿者参与,他们被要求在聊天室中与其他参与者进行交流。

实验分为两个阶段,第一阶段为在线聊天室,第二阶段为面对面交流。

我们通过观察和记录参与者的行为和反馈,以及与他们进行深入访谈,来分析聊天室对社交行为的影响。

在第一阶段的在线聊天室中,我们注意到一些有趣的现象。

首先,参与者更容易表达自己的真实感受。

在面对面交流中,人们常常会受到社交规范和他人的评判而掩饰自己的情感。

而在聊天室中,由于与他人的身份相对匿名,参与者更倾向于坦诚地表达自己的情感和观点。

这种匿名性带来的自由感,使得参与者更加敢于展示自己的真实个性。

其次,聊天室的虚拟环境为参与者提供了更多的思考时间。

在面对面交流中,人们常常会因为时间的限制而匆忙作出回应。

而在聊天室中,参与者可以在键盘敲击的间隙中思考并构思自己的回应,从而更加深入地思考问题。

这种思考时间的增加,使得参与者能够更加充分地表达自己的想法,并且更好地理解他人的观点。

然而,聊天室也存在一些劣势。

首先,由于缺乏面对面的非语言交流,参与者之间的沟通会受到限制。

在面对面交流中,人们通过面部表情、肢体语言和声音的变化来传递情感和意图。

而在聊天室中,这些非语言元素被削弱,导致参与者之间的理解和共鸣有时会受到影响。

其次,聊天室中的匿名性也存在一些问题。

虽然匿名性可以让参与者更加自由地表达自己的观点,但也可能导致一些不良行为的出现。

在聊天室中,有些参与者可能会利用匿名身份进行辱骂、欺凌或传播虚假信息。

这种行为不仅会伤害他人,还可能导致社交环境的恶化。

综上所述,聊天室作为一种虚拟社交工具,在一定程度上影响了人们的社交行为。

它为参与者提供了一个坦诚表达自己的平台,并且通过增加思考时间来促进深入思考。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{
inti = 0;
while ( ( user_link[i] != 0)&&( i<MAX_CLIENT)) i++;
if ( i == MAX_CLIENT) return( -1);
return( i);
}
int main( void)
{
intsockfd;
intnew_sockfd;
intuser_link[MAX_CLIENT];
for ( j=0; j<MAX_CLIENT;j++)
{
if ( (j != i)&&(user_link[j]==1))
{
write( userfd[j], line, strlen( line));
}
}
}
else if(line[0]=='l'&&line[1]=='i'&&line[2]=='s'&&line[3]=='t')
注:开课时间填本实验项目所有实验班的具体上课时间,如11月12日下午3:00-5:00。
实验内容
(1)编写聊天室的客户端和服务器端,客户端主要功能是发送信息,服务器端的主要功能是将客户端发的内容转发到除发送端以外的所有客户端,实现客户端和客户端的通信。
(2)编写基于原始套接字的网络通信原型系统;
实验条件
学院提供网络实验室,1台/学生微型计算机,安装有Linux虚拟机。
实验原理
实验中,客户应用程序向服务器程序请求服务。服务进程一直处于休眠状态,直到一个客户向这个服务的地址提出了连接请求。在这个时刻,服务程序被"惊醒"并且为客户提供服务-对客户的请求作出适当的反应。
3.对于输出用户功能,客户端输入“list”,服务器通过比较给客户端传输全部的用户。
4.对于私聊功能,通过“*”符号进行判断,利用指针取出“*”之后的名字,只对该名字进行转发。
服务器端代码
#include <>
#include <sys/>
#include <netinet/>
#include <>
int main( void)
{
intsockfd;
intstatus;
charstr[MAX_LINE];
char name[MAX_NAME];
sockfd = init_cli();
if ( sockfd == 0) {
printf( "Init client socket error.\n");
{
bzero(line,MAX_LINE);
for(k=0;k<MAX_CLIENT;k++)
{
if(user_link[k]==1)
{
strcat(line,username[k]);
strcat(line," ");
}
}
n");
fflush( stdout);
return( 0);
}
bzero( ( char*)&serv_addr, sizeof( serv_addr));
fflush( stdout);
exit( 1);
}
fcntl( sockfd, F_SETFL, O_NONBLOCK);
fprintf( stdout, "Please input your name:");
fscanf( stdin, "%s", name);
strcpy( str, "/");
{
user_link[i] = 0;
username[i][0] = '\0';
}
else if ( length >0) {
line[length] = '\0';
if ( (line[0] == '/')&&(username[i][0] == '\0'))
{
set_name( line, username[i]);
write( sockfd, str, strlen( str));
close( sockfd);
exit( 0);
}
write( sockfd, str, strlen(str));
}
}
return 1;
}
#endif n");
fflush( stdout);
return( 0);
}
if ( connect( sockfd, ( struct sockaddr *)&serv_addr,
#include<>
#include<>
#include <>
#include <netinet/>
#include <>
#include &lMAX_LINE 500
#define MAX_NAME 100
int init_cli();
#ifndef __SELECT__
fscanf( file, "%d", &port);
fclose( file);
printf ( "%d \n", port);
sockfd = init_ser( port);
if ( sockfd == 0)
{
printf( "Init sever socket error\n");
fflush( stdout);
str[status] = '\0';
printf( "%s", str);
fflush( stdout);
}
if ( (status = read( 0, str, MAX_LINE))>0)
{
str[status] = '\0';
if ( str[0] == 'q')
{
sprintf( str, "I leave the room.\n");
{
char theline[MAX_LINE];
strcpy( theline, name);
strcat( theline, " : ");
strcat( theline, line);
strcpy( line, theline);
}
intuser_free( int user_link[MAX_CLIENT])
显示所有的用户功能,通过发送“list”由客户端发送所有的用户名字。
私聊功能,通过“*”符号作为标识符实现两个用户之间的私有通信。
实验感悟
本实验的私聊功能较为难实现,在老师和同学的帮助下经过一次次的验证和修改最终实现了该功能,最终本实验可以群聊也可以私聊。本实验利用的是C语言编程,需要C语言和linux网络编程基础,尤其对socket编程和C语言数组和指针的应用,锻炼了我们对两者的编程能力,在修改代码的过程中加深了我们对编程的理解。
fflush( stdout);
return( 0);
}
return( sockfd); }
客户端部分:
1.手动输入服务器端IP地址和端口号进行连接
2.发送消息给服务器端并显示服务器端回传的消息
3.监控连接状态,客户离开或故障时从列表中删除相应表项,并及时更新连接表
客户端代码:
#include <>
服务器部分:
1.首先判断客户端的用户是不是第一个登陆,对于第一次登陆的用户后面加上“/”,首先判断user_link是否为有位置,有的话并把username写入,usercount设置为1,并转发出xxjoin the room。
2.对于登陆过的用户可惜相互通讯,客户端写入信息发给服务器端,服务器端转发出去。
intuserfd[MAX_CLIENT];
char username[MAX_CLIENT][MAX_NAME];
char line[MAX_LINE];
intuserCount;
unsigned intcli_len;
structsockaddr_incli_addr;
FILE *file;
int port,i,j,k,l;
strcat( str, name);
write( sockfd, str, strlen( str));
fcntl( 0, F_SETFL, O_NONBLOCK);
while ( 1) {
if ( (status = read( sockfd, str, MAX_LINE))>=0 )
{
if ( status == 0) exit(0);
int length;
char name[MAX_LINE];
char cmpstr[MAX_LINE];
char linestr[MAX_LINE];
char *ps,*pt,*pr;
char *pl,*pn;
file = fopen( "config", "r");
fgets( line, MAX_LINE, file);
设计性实验项目简介
实验课程名称
TCP/IP协议分析
实验项目名称
聊天室
实验项目性质
1、综合性 2、设计性√
相关文档
最新文档