设计聊天室 实验报告

合集下载

聊天室 实验报告

聊天室 实验报告

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

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

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

一、聊天室的优势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要求在客户机和服务器传输图片和文件,如果是图片则显示,是文件则保存。

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

多人聊天室程序设计综合实验

多人聊天室程序设计综合实验

程序设计综合实验•多人聊天室系统功能需求分析开发环境系统架构概要设计功能模块详细设计流程图补充知识算法伪码目录分工进度功能模块分工进度a需求分析项目开发计划聊天软件有很多种,如QQ,MSN,微信等,但它们通常都是不开源的,能否根据学过的知识,设计一个简单的聊天程序?本项目研发一个多人聊天室,让处在聊天室中的每一位成员都能够互相通信,并将聊天记录保存下来功能描述·需要一个图形用户接口(窗口界面)·文本输入框:用于输入一条消息·文本显示框:按顺序显示已经收到的消息和已经发送的消息·网络接口:用于在服务器和客户端建立连接·能将文本显示框中的内容保存在一个.txt文件中开发平台·Windows操作系统·Pycharm5.0.4集成开发环境·Python编程语言(版本为Python2.7.15)知识点、技术难点socket模块socket基本上是两个端点的程序之间的“信息通道”。

分布在不同计算机上的程序,通过套接字相互发送信息一个套接字就是socket模块中socket类的一个实例。

在创建一个服务器套接字后,让它等待连接。

这样它就在某个网络地址处(IP地址和一个端口号的组合)监听,直到有客户端套接字连接。

连接完成后,两者就可以进行交互了。

套接字有两个方法:send和recv,用于传输数据。

可以使用字符串参数调用send以发送数据,用一个所需的(最大)字节数作参数调用recv来接收数据。

知识点、技术难点wxPython——跨平台GUI工具包wxPython是一个成熟且特性丰富的GUI工具包,但在Python2版本中,需要另行下载安装,具体安装过程可以参考https:///xiongwanfeng/article/details/77995055用wxPython设计的超简单文本编辑器b概要设计界面设计建立连接信息交互系统架构关闭连接功能模块·socket模块:用于连接服务器与客户端,使聊天室中的成员可以相互通信·输入文本框:输入当前要发送的消息·显示文本框:输出截止至当前时刻已发送的历史消息·显示文本框的内容保存至一个.txt文件分工进度第一天第二天第三天第四天第五天组员1组员2组员3组员4联调集体讨论,确立分工,搭建并配置编程环境界面设计Socket模块设计实现服务器端设计实现客户端设计实现局部联调c详细设计程序流程图服务器端:客户端:开始建立套接字请求连接,观察是否成功建立连接并创建一个对话框输入文字进行对话是否关闭窗口结束否是否是开始创建套接字监听是否有连接请求建立新连接向全体成员发送有人加入聊天室是否关闭服务器结束算法伪码服务器端socket模块:s = socket.socket()host = socket.gethostname() port = 4321s.bind((host, port))s.listen(5)c, addr= s.accept()客户端socket模块:s = socket.socket()host = socket.gethostname() port = 4321s.connect((host, port))服务器端建立一个套接字,并将当前主机的用户名及端口号绑定在套接字上服务器端开始监听连接请求,当有连接请求时,获取客户端的套接字客户端创建套接字,并连接至服务器端算法伪码app = wx.App()win = wx.Frame(None, title=‘Server')bkg= wx.Panel(win)history_dialog= wx.TextCtrl(bkg,style=wx.TE_READONLY| wx.TE_MULTILINE | wx.HSCROLL)contents_input= wx.TextCtrl(bkg,style=wx.TE_MULTILINE| wx.HSCROLL)创建主窗口创建显示文本框创建输入文本框算法伪码发送消息def send_mssg(event):user_input = contents_input.GetValue()if user_input:message = 'Server: ' + time.strftime("%Y-%m-%d %H:%M:%S ", time.localtime()) + '\n ' + user_input + '\n'try:c.send(message.encode('utf-8'))except(socket.error):print 'Warning: CONNECTION DROPPED'history_dialog.AppendText(message)contents_input.Clear()接收消息def recv_mssg():try:recv_message = c.recv(1024).decode('utf-8')except (OSError, socket.error):print 'Warning: SERVER ERROR'else:if recv_message:name, time1, time2, recv_contents = recv_message.split(' ', 3)message = name + ' ' + time.strftime("%Y-%m-%d %H:%M:%S ", time.localtime()) + recv_contents history_dialog.AppendText(message)else:passtimer = threading.Timer(0.1, recv_mssg)timer.setDaemon(True)timer.start()算法伪码def save(event):file = open(u'聊天记录.txt', 'w')file.write(history_dialog.GetValue().encode('utf-8')) file.close()SendButton= wx.Button(bkg, label='发送') SaveButton= wx.Button(bkg, label='保存') SendButton.Bind(wx.EVT_BUTTON, send_mssg) SaveButton.Bind(wx.EVT_BUTTON, save)将显示文本框的内容保存在一个.txt文件中创建”发送”和”保存”两个按钮将按钮和函数绑定在一起,即按下按钮时执行对应的函数d案例改进需要改进的方面·GUI界面不够美观设计更加丰富,美观的GUI界面·聊天室内的成员只能群聊,不能够向指定人发起私聊找到指定的成员,额外开启一个对话框进行私聊·ip地址和port端口已在程序中设置好,无法改变将ip地址和port端口作为用户输入保存起来,需要时进行调用e案例总结运行效果界面简洁基于wxPython 工具包的简单聊天程序支持全双工通信Python语言相比C++更加简单缺点优点不能传输附件THANKS!。

实验8-多人聊天室

实验8-多人聊天室

实验8-多人聊天室实验八多人聊天室【实验名称】多人聊天室【实要求】1、熟悉客户端与服务器架构(C/S);2、熟悉PythonSocket 套接字;3、熟悉TCP和UDP通讯原理和流程;【实验要求】1、客户端与服务端架构;2、熟悉Pythonsocket常用的函数;3、熟悉TCP和UDP通讯原理和流程;4、会编写简单的socket聊天程序;【背景描述】在Python程序中,我们常常需要面对网络通讯架构的程序,就是客户端向服务端发起连接访问,服务端获取客户端发送过来的命令后作出相应的处理,处理完后返回信息给客户端,这就是常说到的客户端/服务端架(C/S)构的程序。

现实生活中我们常常遇到这样的架构程序,最典型的就是web程序,浏览器发送请求,服务端返回请求信息,浏览器界面显示用户请求的信息。

本节就是从底层了解C/S架构程序,以便我们能够熟悉这类程序的流程。

【知识准备】掌握和熟悉Python基本语法,常见数据类和操作,会用pdb调试Python程序,了解一定网络通讯知识,了解一定socket套接字编程。

【实验设备】Windows或Linux或MacOS的操作系统的计算机。

本实验提供win7系统。

【实验说明】为了开发方便,本人用IDLE做为实验教学和模拟环境,不再在CMD下操作。

【实验环境】系统:Windows764位旗舰版,Python版本:Python3.5.3开发工具:IDLE集成开发环境。

【实验步骤】在windows764位旗舰版安装python3,并执行命令和脚本。

第一步:认识客户端/服务端架构本节中的定义是服务器是一个软件或硬件,用于向一个或多个客户端(客户)提供所需要的服务。

服务器存在的唯一目的就是等待客户的请求,给这些客户服务,然后再等待其他的请求。

而客户连接上(预先已知的)服务器,提出自己的请求,发送必要的数据,然后等待服务器完成请求或说明失败原因的反馈。

服务器不停的处理外来的请求,而客户一次只能提出一个服务的请求,等待结果。

聊天室实习报告

聊天室实习报告

一、实习背景随着互联网技术的飞速发展,网络社交已成为人们日常生活中不可或缺的一部分。

聊天室作为网络社交的重要平台,为广大网民提供了便捷的交流方式。

为了更好地了解聊天室运营模式,提升自身实践能力,我于2023年在某知名聊天室平台进行了为期一个月的实习。

二、实习目的1. 了解聊天室的运营模式,掌握聊天室的基本管理技巧;2. 提高自己的沟通能力、团队协作能力和应变能力;3. 学习网络社交平台的运营策略,为今后从事相关工作打下基础。

三、实习内容1. 聊天室平台简介本次实习的聊天室平台是一家拥有百万级用户的知名社交平台。

平台以文字、图片、语音等多种形式为用户提供即时通讯服务,致力于打造一个轻松、愉快的交流环境。

2. 实习岗位及职责在实习期间,我担任了聊天室管理员一职,主要负责以下工作:(1)监控聊天室内的实时动态,确保聊天环境的健康、有序;(2)处理用户投诉,及时解决用户问题;(3)制定聊天室活动方案,丰富用户互动体验;(4)与其他管理员协作,共同维护聊天室秩序。

3. 实习过程(1)熟悉聊天室平台在实习初期,我通过阅读相关资料和实际操作,对聊天室平台的功能、操作流程以及管理员权限有了初步了解。

同时,我还学习了聊天室内的各种违规行为及处理方法,为今后工作打下基础。

(2)参与管理员培训为了更好地履行管理员职责,我参加了公司组织的管理员培训。

培训内容包括聊天室运营策略、用户心理分析、应急处理技巧等。

通过培训,我掌握了更多管理技巧,提高了自己的业务水平。

(3)实际操作在实习过程中,我积极参与实际工作,努力提高自己的沟通能力、团队协作能力和应变能力。

以下是我实习期间的一些具体工作:1. 监控聊天室:在聊天室内实时关注用户动态,发现违规行为及时进行处理,确保聊天环境健康、有序;2. 处理用户投诉:针对用户投诉的问题,耐心倾听,了解情况,给出合理解决方案;3. 制定活动方案:结合聊天室特点,策划并实施各类活动,提高用户活跃度;4. 团队协作:与其他管理员保持良好沟通,共同维护聊天室秩序。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{
printf( "Init sever socket error\n");
fflush( stdout);
//exit(1);
} //Socket init done
listen( sockfd, MAX_CLIENT);
cli_len = sizeof( cli_addr);
for ( i = 0; i<MAX_CLIENT; i++)
{
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')
{
bzero(line,MAX_LINE);
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);
username[i][0] = '\0';
}
else if ( length >0) {
line[length] = '\0';
if ( (line[0] == '/')&&(username[i][0] == '\0'))
{
set_name( line, username[i]);
for ( j=0; j<MAX_CLIENT;j++)
if ( ( sockfd = socket( AF_INET,SOCK_STREAM,0))<0) {
perror( "socket:");
printf( "server:can`t open stream socker.\n");
fflush( stdout);
return( 0);
}
bzero( ( char*)&serv_addr, sizeof( serv_addr));
}
intuser_free( int user_link[MAX_CLIENT])
{
inti = 0;
while ( ( user_link[i] != 0)&&( i<MAX_CLIENT)) i++;
if ( i == MAX_CLIENT) return( -1);
return( i);
}
int main( void)
sizeof( serv_addr))<0) {
perror( "bind:");
printf( "server: can`t bind local address\n");
fflush( stdout);
return( 0);
}
return( sockfd); //successful.
}
客户端部分:
{
user_link[i] = 0;
username[i][0] = '\0';
}
userCount = 0;
fcntl( sockfd, F_SETFL, O_NONBLOCK);
for ( ; ;) {
if ( (userCount = user_free( user_link)) >=0)
{
new_sockfd = accept( sockfd, (struct sockaddr*)&cli_addr,&cli_len);
serv_addr.sin_family=AF_INET;
serv_addr.sin_addr.s_addr =htonl( INADDR_ANY);
serv_addr.sin_port=htons( SERV_TCP_PORT);
if ( bind( sockfd, ( struct sockaddr *)&serv_addr,
fflush( stdout);
exit( 1);
}
fcntl( sockfd, F_SETFL, O_NONBLOCK);
fprintf( stdout, "Please input your name:");
fscanf( stdin, "%s", name);
strcpy( str, "/");
3.对于输出用户功能,客户端输入“list”,服务器通过比较给客户端传输全部的用户。
4.对于私聊功能,通过“*”符号进行判断,利用指针取出“*”之后的名字,只对该名字进行转发。
servse.c服务器端代码
#include <signal.h>
#include <sys/wait.h>
#include <netinet/in.h>
int mainus;
charstr[MAX_LINE];
char name[MAX_NAME];
sockfd = init_cli();
if ( sockfd == 0) {
printf( "Init client socket error.\n");
file = fopen( "config", "r");
fgets( line, MAX_LINE, file);
fscanf( file, "%d", &port);
fclose( file);
printf ( "%d \n", port);
sockfd = init_ser( port);
if ( sockfd == 0)
for ( i=0; i<MAX_CLIENT;i++) {
if ( user_link[ i] == 1) {
length = read( userfd[i], line, MAX_LINE);
if ( length == 0) // socket is closed.
{
user_link[i] = 0;
for ( j=0; j<MAX_CLIENT;j++)
{
if ( (j != i)&&(user_link[j]==1))
{
write( userfd[j], line, strlen( line));
}
}
}
} // length >0
} // user_link[i] == 1
} // for
} // for
1.手动输入服务器端IP地址和端口号进行连接
2.发送消息给服务器端并显示服务器端回传的消息
3.监控连接状态,客户离开或故障时从列表中删除相应表项,并及时更新连接表
client.c客户端代码:
#include <stdio.h>
#include<string.h>
#include<stdlib.h>
#include <errno.h>
fcntl( new_sockfd, F_SETFL, O_NONBLOCK);
if ( new_sockfd < 0)
{
user_link[userCount] = 0;
}
else
{
user_link[userCount] = 1;
userfd[userCount] = new_sockfd;
}
} // if userCount >= 0
else if(line[0] == '*')
{
ps=cmpstr;
pt=line;
pr=linestr;
pt++;
while((*pt)!=':')
{
*ps=*pt;
ps++;
pt++;
}
*ps='\0';
pt++;
while((*pt)!='\0')
{
*pr=*pt;
pr++;
pt++;
}
*pr='\0';
for(k=0;k<MAX_CLIENT;k++)
{
if(user_link[k]==1)
{
strcat(line,username[k]);
strcat(line," ");
}
}
// strcat(line,'\0');
write( userfd[i], line, strlen(line));
}
}
void add_name(char *line, char *name)
{
char theline[MAX_LINE];
strcpy( theline, name);
相关文档
最新文档