社区
网络编程
帖子详情
面试题,新鲜出炉,socket的,进者有分!
chary8088
2011-12-26 03:15:02
1 怎么检测socket是不是断开了?
2 按顺序发送出去的数据包,在接收时顺序乱了,是什么原因导致的?
3 如果发送100K的数据,第一次发送了50K,然后不能发送了,剩下的50K怎么办?
我回答:
1 超时检测,比如发送超时,接收超时
2 如果是tcp,应该是tcp重传造成的,比如第一次发送失败,然后重传造成的
UDP很可能就是前一个包延迟造成的
3 尝试发,好像不对
我不知道我的回答对不对,请大家讨论!
...全文
994
25
打赏
收藏
面试题,新鲜出炉,socket的,进者有分!
1 怎么检测socket是不是断开了? 2 按顺序发送出去的数据包,在接收时顺序乱了,是什么原因导致的? 3 如果发送100K的数据,第一次发送了50K,然后不能发送了,剩下的50K怎么办? 我回答: 1 超时检测,比如发送超时,接收超时 2 如果是tcp,应该是tcp重传造成的,比如第一次发送失败,然后重传造成的 UDP很可能就是前一个包延迟造成的 3 尝试发,好像不对 我不知道我的回答对不对,请大家讨论!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
25 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xengine-qyt
2012-01-05
打赏
举报
回复
简单,第二题很明显你打错了!
helloboy1991
2012-01-05
打赏
举报
回复
[Quote=引用 19 楼 jsyren 的回复:]
1,心跳包
2,如果用tcp,顺序不是你的程序来考虑的问题。
3,如果是传了50k,剩下的50k可以下次再传嘛,只是记录一下这次传到了哪里就可以了。。。
这就是传说中的断点续传嘛
呵呵
[/Quote]
就是这样
面包大师
2012-01-05
打赏
举报
回复
只知有心跳。。。
smwhotjay
2012-01-05
打赏
举报
回复
1.其实不仅可以心跳. 心跳只是下策. select之.解决
2.接收时顺序乱. tcp是不可能的.除非你发送出错了.或中间网络层或其他层转发出现问题.
sharptiger123
2011-12-31
打赏
举报
回复
写个配置文件分块断点续传
jsyren
2011-12-29
打赏
举报
回复
1,心跳包
2,如果用tcp,顺序不是你的程序来考虑的问题。
3,如果是传了50k,剩下的50k可以下次再传嘛,只是记录一下这次传到了哪里就可以了。。。
这就是传说中的断点续传嘛
呵呵
xqlu2007
2011-12-27
打赏
举报
回复
3.后面的50K发不了,说明前面的50K发出去没收到应答,即前面的都还没发成功,所以只能等,等的结果是超时或等了一段时间后等到了应答,前者全部重发,后者正常发.
Eleven
2011-12-27
打赏
举报
回复
如果发送100K的数据,第一次发送了50K,然后不能发送了,剩下的50K怎么办?
------------------------
问题没有描述清楚,然后不能发送了?为什么不能发送,网络问题?还是send失败?还是系统缓冲区满~
Eleven
2011-12-27
打赏
举报
回复
如果发送100K的数据,第一次发送了50K,然后不能发送了,剩下的50K怎么办?
------------------------
问题没有描述清楚,然后不能发送了?为什么不能发送,网络问题?还是send失败?还是系统缓冲区满~
Eleven
2011-12-27
打赏
举报
回复
如果发送100K的数据,第一次发送了50K,然后不能发送了,剩下的50K怎么办?
------------------------
问题没有描述清楚,然后不能发送了?为什么不能发送,网络问题?还是send失败?还是系统缓冲区满~
oyljerry
2011-12-27
打赏
举报
回复
3.要么就是下次有机会重发,要么就是放弃这次发送
langyano1
2011-12-27
打赏
举报
回复
TOP
jxingcn
2011-12-27
打赏
举报
回复
1:可以自己写心跳包检查SOCKET连接是否有效
2:可以利用TCP自身的心跳包机制 SO_KEEPALIVE来判断SOCKET连接是否有效。
3: 如果是TCP,TCP底层会保证数据包按顺序接收。
4:如果发送100K的数据,第一次发送了50K,然后不能发送了,剩下的50K怎么办?如果SOCKET出错,那么后面50K就不发了,释放资源,关闭SOCKET。
武汉元码科技
2011-12-27
打赏
举报
回复
[Quote=引用 2 楼 morebread 的回复:]
1、判断socket api返回值并结合GetLastError来确定
2、每个包经过的路由是不同的,会造成到达时间的不同
3、问题看不明白,是问谁怎么办? 应该是直接丢弃吧,还能怎么办?
[/Quote]
3.和socket设置选项有关,如果有数据没发送完,直接丢弃吧。
csx007700
2011-12-26
打赏
举报
回复
1 怎么检测socket是不是断开了?
心跳包..... 肯定的...
2 按顺序发送出去的数据包,在接收时顺序乱了,是什么原因导致的?
发送过程中通过的路径不一样 导致到达时间不同
3 如果发送100K的数据,第一次发送了50K,然后不能发送了,剩下的50K怎么办?
不能发送了?不太懂耶... 那....只能丢了?
小麻侬
2011-12-26
打赏
举报
回复
1 心跳包,select机制
2 对于UDP,这种现象很常见,可以加索引,然后接收端设置缓存接收,按索引取
3 难道是要和你讨论类似断点续传
ouyh12345
2011-12-26
打赏
举报
回复
3、改成非阻塞模式,并循环发
chary8088
2011-12-26
打赏
举报
回复
没人了?
chary8088
2011-12-26
打赏
举报
回复
[Quote=引用 2 楼 morebread 的回复:]
1、判断socket api返回值并结合GetLastError来确定
2、每个包经过的路由是不同的,会造成到达时间的不同
3、问题看不明白,是问谁怎么办? 应该是直接丢弃吧,还能怎么办?
[/Quote]
我估计意思是问怎么处理,我也没能真正体会到他问的真正意图
morebread
2011-12-26
打赏
举报
回复
1、判断socket api返回值并结合GetLastError来确定
2、每个包经过的路由是不同的,会造成到达时间的不同
3、问题看不明白,是问谁怎么办? 应该是直接丢弃吧,还能怎么办?
加载更多回复(1)
『
新鲜出炉
』2025金九银十338 道Java高频
面试题
+答案解析.zip
本文档名为“2025金九银十338道Java高频
面试题
+答案解析”,是一份专注于Java编程语言的
面试题
集,包含了338个精选的
面试题
目,覆盖了Java编程的各个层面,从基础语法到高级特性,再到实际应用和最佳实践。...
2021
新鲜出炉
阿里巴巴面试真题,最终入职阿里
由于涉及到的
面试题
较多导致篇幅较长,文末有领取方式! java方面 Java 四种线程池的用法分析 Java有几种文件拷贝方式?哪一种最高效? 使用FileChannel(文件通道)来实现文件快速复制 JVM类加载机制详解JVM类加载...
22年全网题量最大 知识面最广 深度最深的android
面试题
新鲜出炉
、玉刚、掘金博主 xiangzhihong、Focusing、simpleeeeee、DevYK、简书博主 huangLearn、腾讯享学课堂、慕课网、极客时间…》包含各个大厂的高频面题及行业最新技术,是由阿里P6的大佬花两月时间整理和完善而出,资料...
新鲜出炉
!2020年上半年阿里,腾讯等一线大厂面试真题整理!
最近和很多粉丝聊了聊最近找工作的情况,发现很多人也是最近都在忙着跳槽换工作,针对这个情况,我把大家所有面试问题都整理了下,也算是给大家开个小灶,帮助你们在面试的时候更有底气,话不多说几百道一线大厂面试...
新鲜出炉
,阿里P7架构师亲手整理的《2022中高级 Android 面试必知百题》(
面试题
+答案解析)
特此给大家分享一份由阿里高级架构师亲手整理的《2022中高级 Android 面试必知百题》。 内容涵盖:java方面、Android方面、数据结构方面、计算机网络方面、Kotlin方面等。需要更多面试真题的朋友们,vx扫描二维码...
网络编程
18,363
社区成员
64,187
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章