社区
网络编程
帖子详情
socket 怎样保证连接正常
washingli
2003-06-23 09:33:58
socket 怎样保证连接正常,在一次面试时被问的问题,怎么办?
...全文
32
4
打赏
收藏
socket 怎样保证连接正常
socket 怎样保证连接正常,在一次面试时被问的问题,怎么办?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
washingli
2003-06-23
打赏
举报
回复
这是在华为的一道面试题,原话就这样
我对网络编程不是很熟
所以照搬来了
smile2008
2003-06-23
打赏
举报
回复
她问这个问题很难弄明白,面太宽,你本可以问详细一些
Crob
2003-06-23
打赏
举报
回复
不过这个东西设了和没设一样,环境好的话,不管设不设几天几夜都断不了。
Crob
2003-06-23
打赏
举报
回复
是不是指这个
BOOL bKeepAlive = TRUE;
m_socket.SetSockOpt(SO_KEEPALIVE, &bKeepAlive, sizeof(BOOL));
vb.net通过
socket
实现简易多人聊天室(含心跳检测机制)
语言vb.net (c#可以参考)+winform开发,利用
socket
进行多个客户端通信实现简易的聊天室,为了
保证
客户端与服务端
连接
正常,增加心跳检测机制、客户端定时断开超时未发送心跳包的客户端机制。 界面比较粗糙,仅供学习
socket
者参考
Socket
保证
长
连接
的两种方式
1.1 方法一:应用层自己实现的心跳包 由应用程序自己发送心跳包来检测
连接
是否正常,大致的方法是:服务器在一个 Timer事件中定时 向客户端发送一个短小精悍的数据包,然后启动一个低级别的线程,在该线程中不断检测客户端的回应, 如果在一定时间内没有收到客户端的回应,即认为客户端已经掉线;同样,如果客户端在一定时间内没 有收到服务器的心跳包,则认为
连接
不可用。 1.2 方法二:TCP的KeepAlive保活机制 因为要考虑到一个服务器通常会
连接
多个客户端,因此由用户在应用层自己实现心跳包,代码较多 且
Socket
编程快速入门
本课程将理本课程将理啊 论结合实践,带你从零开始,系统学习
Socket
编程技术,让
Socket
的学习不再那么零散与难以掌握,同时会提炼出
Socket
网络传输的核心思想与构架,并带你踩坑出坑,增加你的分析与处理问题的啊aasa 能力,完善你的编程思想与知识体系。论结合实践,带你从零开始,系统学习
Socket
编程技术,让
Socket
的学习不再那么零散与难以掌握,同时会提炼出
Socket
网络传输的核心思想与构架,并带你踩坑出坑,增加你的分析与处理问题的能力,完善你的编程思想与知识体系。
Socket
如何
保证
长
连接
方法1:应用层自己实现的心跳包 由应用程序自己发送心跳包来检测
连接
是否正常,大致的方法是:服务器在一个 Timer事件中定时 向客户端发送一个短小精悍的数据包,然后启动一个低级别的线程,在该线程中不断检测客户端的回应, 如果在一定时间内没有收到客户端的回应,即认为客户端已经掉线;同样,如果客户端在一定时间内没 有收到服务器的心跳包,则认为
连接
不可用。 方法2:TCP的KeepAlive保
TCP
socket
如何判断
连接
断开
1、
Socket
SO_KEEPALIVE不能取代心跳线程的原因 (1)SO_KEEPALIVE是系统底层的机制,用于系统维护每一个tcp
连接
的。 (2)心跳线程属于应用层,主要用于终端和服务器
连接
的检查。 即使SO_KEEPALIVE检测到
连接
正常,但并不能
保证
终端和服务器
连接
的正常。有一种情况,服务器进程死了,但它和客户端的tcp
连接
还连着(该
连接
由系统维护的)。 ...
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章