AsyncSocket写的客户端Socket,实现当服务器断开连接时弹窗提示
来源:互联网 发布:高中化学知识网络结构 编辑:程序博客网 时间:2024/06/07 17:37
背景:
在MFC里面用AsyncSocket 写了一个客户端程序,一个按钮发数据,当发送数据时发现如果关闭服务器的监听端口依然会提示数据已发送。原因也许是因为异步Socket没有阻塞,connect后会立刻返回?
过程:
于是百度尝试各种方法,有心跳方法,一秒钟连一次服务器,但感觉对于我这个程序过于被动;又尝试在OnConnect的返回值nerrorcode上面下功夫,发现如果刚开始服务器没开的话,点按钮可以提示没有连接,但如果一旦服务器打开,连接,服务器关闭,再点按钮,还是可以提示数据已发送。干脆在按钮的消息响应函数里面Create Socket,然后Connect,这样应该会实现点一次按钮判断一次是否连接好服务器了吧?但是连点两次按钮报错,我想是不是因为Socket没有关闭,然后又去另一个类(异步socket类)的OnConnect函数里加了关闭对话框类里面的socket(GetApp()->GetMainWnd()->clientsocket.close()),无论是否连接成功,都加了(if() else());再试发现还是不行,如果刚开始是连接到服务器,然后服务器关闭端口,再点按钮还是不提示else里面的没有连接。
结果:
在OnClose()函数里实现提示服务器异常即可。连接过程中服务器断开,此时再点发送按钮顺利提示(连接失败)。
后记:
感觉很神奇,竟然慢慢摸索出来了 哈哈 。但是很多原理性东西不是很清楚。OnConnect()等函数是不是等Connect后触发的呢?它们依赖于函数触发?(事件)FD_CONNECT是不是也可以呢?OnClose()应该是事件触发的。因为服务器一关闭端口就可以响应,前提是不是也要FD_CLOSE一下(不是)?
- AsyncSocket写的客户端Socket,实现当服务器断开连接时弹窗提示
- 服务器中判断客户端socket断开连接的方法
- 服务器中判断客户端socket断开连接的方法
- 服务器中判断客户端socket断开连接的方法
- 服务器中判断客户端socket断开连接的方法
- 服务器中判断客户端socket断开连接的方法
- 服务器中判断客户端socket断开连接的方法
- 服务器中判断客户端socket断开连接的方法
- JAVA Socket服务器 判断客户端连接断开
- Socket服务器 判断客户端连接断开
- C#进行SOCKET开发---当连接与与服务器断开时的问题
- 客户端怎么判断Socket连接已与服务器断开
- 客户端怎么判断Socket连接已与服务器断开
- 多线程Socket编程实现服务器与客户端的连接
- java网络编程----------Socket实现客户端和服务器的连接
- JAVA NIO写服务端判断客户端断开连接的方法
- JAVA NIO写服务端判断客户端断开连接的方法
- WebSocket 的使用,和客户端断电,服务器检测断开连接
- 利用java实现非递归二分查找
- (新知)数据结构--Treap--模版
- Nginx rewrite 301 永久重定向跳转
- Mutual Training for Wannafly Union #3
- Javascript高级程序设计——11.变量、作用域、缓存
- AsyncSocket写的客户端Socket,实现当服务器断开连接时弹窗提示
- 2016校招编程 lcs 动态规划
- 接收短信
- 个人记录-LeetCode 44. Wildcard Matching
- docker安装运行保存镜像容器
- Linux下的51单片机蜂鸣器实验
- 计算机大小端判别方法
- 《鸟哥linux私房菜》读书笔记
- NOI 2991:2011(思维/规律)