社区
C++ Builder
帖子详情
怎么判断socket的状态?
huche
2001-10-30 10:31:18
如何判断TClientSocket的状态是正在连接、已连接、正在写、正在读等等状态???谢谢!
...全文
105
6
打赏
收藏
怎么判断socket的状态?
如何判断TClientSocket的状态是正在连接、已连接、正在写、正在读等等状态???谢谢!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
huche
2001-10-30
打赏
举报
回复
不能直接获得状态属性吗?
PsWaker22
2001-10-30
打赏
举报
回复
ClientSocket有这么几个事件:OnConnect,OnConnecting,OnRead,OnWrite~~~
OnConnecting表示ClientSocket正在连接时,触发的事件;OnConnect表示ClientSockt已连接上(连接上ServerSocket)时触发的事件;OnRead,OnWrite可以以此类推~~~
在你的Form里加上一个StatusBar,给它添加一个Panels(在它的属性栏Panels里可以添加)
然后在上述的事件中假如以下代码(比如在OnConnecting事件里):
StatusBar1->Panels[0]->Text='正在连接.....’;
这样,你就可以知道,ClientSocket此时的状态,其他的几种时间可以以此类推。
szwxj
2001-10-30
打赏
举报
回复
可以使用:TClientSocket->Socket->SocketHandle,利用winsocket2api来获得它的状态。
huche
2001-10-30
打赏
举报
回复
---------
头五位参与者(不含自己)每人五分,解决问题者五十分,不足五位参与者已经解决问题,剩余部分分数送解决问题者。三天无人解答出也送分!谢谢!!
huche
2001-10-30
打赏
举报
回复
比如你要发送一个数据包之前要检查状态呀,不仅仅是检查是否已经连接吧?
francohe
2001-10-30
打赏
举报
回复
在事件响应中写代码其实与直接获得状态属性一样呀!?你想实现什么功能呀?!
Java实现
Socket
长连接和短连接
Java实现
Socket
长连接和短连接,实现原理可参见个人博客
怎样实时
判断
socket
连接
状态
?
摘自:https://www.cnblogs.com/embedded-linux/p/7468442.html 对端正常close
socket
,或者进程退出(正常退出或崩溃),对端系统正常关闭 这种情况下,协议栈会走正常的关闭
状态
转移,使用epoll的话,一般要
判断
如下几个情况 处理可读事件时,在循环read后,返回结果为0 处理可写事件时,write返回-1,errno为EPIPE EPOLLERR或EPOLLHUP或事件 对端非正常断开,比如服务器断电,网线被拔掉 这种情况下,协
怎样实时
判断
socket
连接
状态
摘自:怎样实时
判断
socket
连接
状态
? - yuxi_o - 博客园 对端正常close
socket
,或者进程退出(正常退出或崩溃),对端系统正常关闭 这种情况下,协议栈会走正常的关闭
状态
转移,使用epoll的话,一般要
判断
如下几个情况 处理可读事件时,在循环read后,返回结果为0 处理可写事件时,write返回-1,errno为EPIPE EPOLLERR或EPOLLHUP或事件 对端非正常断开,比如服务器断电,网线被拔掉 这种情况下,协议栈无法感知,SO_KEEPALIVE这个
如何
判断
socket
是否还处于连接
状态
?
在处于
socket
IO异步中recv的返回值 ==0 ?不能作为判定
socket
状态
的标志 心跳包 可不可以在Client设一个定时器,每隔一段时间发一条消息给服务器,看能不能收到服务器的响应。 心跳包就是定时发包,没回应就
判断
断开。 getsockopt int optval, optlen = sizeof(int); getsockopt(sd, SOL_
SOCKET
, SO_ER...
java
socket
连接
状态
_
socket
连接
状态
判断
方法
socket
非正常退出时,可以使用以下方法
判断
socket
连接
状态
:特别说明:这种情况下,协议栈无法感知,SO_KEEPALIVE这个选项的超时事件太长并不实用,一般还是以应用层的heartbeat来及时发现。法一:当recv()返回值小于等于0时,
socket
连接断开。但是还需要
判断
errno是否等于 EINTR,如果errno == EINTR 则说明recv函数是由于程序接收到信号后返回的...
C++ Builder
13,870
社区成员
102,693
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章