CMU440-P0:Implementing a multi-client echo server(实现一个多客户端回显服务器)

本项目是CMU440课程的一个实践,目标是用Go语言实现一个并发处理多个客户端的回显服务器。服务器需使用goroutines和channels管理客户端连接,处理基于行的信息,以及应对读取缓慢的客户端。项目要求独立完成,禁止使用锁和mutexes,仅允许使用指定的几个包,并遵循Go语言规范。测试结果显示,程序能通过大部分测试,对于慢读客户端的处理可能因机器性能而异。
摘要由CSDN通过智能技术生成

本项目是卡耐基梅隆大学的课程分布式系统(CMU440)课程项目。

课程主页:http://www.cs.cmu.edu/~dga/15-440/S14/syllabus.html

程序代码:https://github.com/ZhouJiahui/CMU440/tree/master/P0-Multi_client_echo_server


这是一个go语言和网络编程的练手项目,它的目标是实现一个多客户的回显服务器。
该回显服务器必须满足如下特征:
1,服务端必须使用goroutines和channels来并发地对客户端管理和交互。多个客户端应该能够同步地连接和断开服务端。
2,服务端假设所有信息都是基于行的,以“\n"符号分割。当服务端从客户端读到新的一行终结信息时,它必须通过写一条额外的信息给所有客户端,包括发送信息的客户端。
3,服务端必须能够应对读取缓慢的客户端。为了更好的理解这个意思,考虑这样一种情况:一个客户端有一段时间不能read,如果在这段时间服务器端一直给这个客户端的TCP连接发送信息,最终TCP连接将溢出缓冲区并且随后调用write将会使服务端堵塞。为了处理这种情况,你的服务端在之后一段时间应该记录至多100条信息发送给这样的客户端。发送给已经溢出100容量缓冲的慢读客户端的信息可以被直接丢弃。如果慢读客户端之

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值