开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
项目仓库所选许可证以仓库主分支所使用许可证为准
master
分支 (1)
master
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
master
分支 (1)
master
cpp71
/
2_Linux
/
2_code
/
LinuxDay09
贡献代码
同步代码
对比差异 通过 Pull Request 同步
同步更新到分支
通过 Pull Request 同步
将会在向当前分支创建一个 Pull
Request,合入后将完成同步
File empty ...
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
01_server.c
(1)这个基础版本的TCP网络通信只能进行一次固定的客户端与服务器
收发数据,不能进行第二次
02_server.c
(2)这是第二个版本的代码,可以达到客户端与服务器随机的收发数据
可以是服务器发一次,客户端回应一次,反过来也可以
也可以是服务器连着发几次,然后客户端在回一次或者几次,这个客户端
与服务器都是可以随便发的
但是这个版本的问题是,任何一端断开了,对端死循环,也就是一直打印
03_server.c
(3)这是第三个版本,解决了自己关闭的时候,对端一直死循环的问题,但是又会有
一个新的问题,比如:客户端断开了,服务器也挂了
正常的情况是,服务器要一直运行,任何一个客户端断开都不能导致服务器断开
如果有多个客户端连接服务器,确实三次握手是可以走完,但是第二个连接不能
与服务器进行传输数据,原因是:这个连接还只在listen的全连接队列中,并
没有被取出来,而第一个已经取出来,所以第一个可以收发数据
所以第三个版本需要解决的问题是:
第一:客户端断开,不能让服务器断开;
第二:客户端可以多个都连接到服务器,并且还可以与服务器通信
04_server.c
(4)为了解决第三个版本的问题,所以有如下步骤:
第一:需要将accept放在while循环中,第二:需要改客户端断开的时候
对文件描述符的修改
解题思路:
第一步:如何知道客户端连接上来了呢,所以可以监听listen_fd,如果
其就绪,就可以调用accept函数从全连接队列中取出来
第二步:服务器需要在终端输入数据,然后将其发送给客户端
第三步:客户端发送数据给服务器的时候,服务器应该去读客户端
发送的数据,所以需要监听conn_fd
解决了客户端断开,服务器不受到任何的影响,也就是客户端断开,服务器不断开的特点
但是又有新问题,客户端连接一个是ok的,但是两个客户端都连接的时候,只有第一个
客户端可以与服务器进行传输数据,第二个客户端是不能与服务器传输数据的
也就是说这份代码只能让一个客户端与服务器建立连接并且传输数据
05_server.c
(5)这个版本在上一个版本的基础上,解决了服务器可以同时监听多个客户端,并且
每个客户端与服务器都可以收发数据
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/cplusplus2023/cpp71.git
git@gitee.com:cplusplus2023/cpp71.git
cplusplus2023
cpp71
cpp71
master
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /