Delphi socket客户端断线重连 [问题点数:23分]

Bbs1
本版专家分:0
结帖率 0%
Bbs9
本版专家分:50645
Blank
红花 2018年11月 Delphi大版内专家分月排行榜第一
2018年5月 Delphi大版内专家分月排行榜第一
2018年2月 Delphi大版内专家分月排行榜第一
2018年1月 Delphi大版内专家分月排行榜第一
2017年12月 Delphi大版内专家分月排行榜第一
2017年8月 Delphi大版内专家分月排行榜第一
2017年7月 Delphi大版内专家分月排行榜第一
2017年5月 Delphi大版内专家分月排行榜第一
2017年3月 Delphi大版内专家分月排行榜第一
2017年2月 Delphi大版内专家分月排行榜第一
2016年12月 Delphi大版内专家分月排行榜第一
2016年11月 Delphi大版内专家分月排行榜第一
2016年10月 Delphi大版内专家分月排行榜第一
2016年9月 Delphi大版内专家分月排行榜第一
2016年8月 Delphi大版内专家分月排行榜第一
2016年7月 Delphi大版内专家分月排行榜第一
2016年6月 Delphi大版内专家分月排行榜第一
2016年5月 Delphi大版内专家分月排行榜第一
2016年4月 Delphi大版内专家分月排行榜第一
2016年3月 Delphi大版内专家分月排行榜第一
2016年2月 Delphi大版内专家分月排行榜第一
2016年1月 Delphi大版内专家分月排行榜第一
2015年12月 Delphi大版内专家分月排行榜第一
2015年11月 Delphi大版内专家分月排行榜第一
2015年10月 Delphi大版内专家分月排行榜第一
2015年9月 Delphi大版内专家分月排行榜第一
2015年8月 Delphi大版内专家分月排行榜第一
2015年7月 Delphi大版内专家分月排行榜第一
2015年6月 Delphi大版内专家分月排行榜第一
2015年5月 Delphi大版内专家分月排行榜第一
2015年4月 Delphi大版内专家分月排行榜第一
2015年3月 Delphi大版内专家分月排行榜第一
2015年2月 Delphi大版内专家分月排行榜第一
2015年1月 Delphi大版内专家分月排行榜第一
2014年12月 Delphi大版内专家分月排行榜第一
2014年11月 Delphi大版内专家分月排行榜第一
Blank
黄花 2017年11月 Delphi大版内专家分月排行榜第二
2017年4月 Delphi大版内专家分月排行榜第二
2017年1月 Delphi大版内专家分月排行榜第二
2014年10月 Delphi大版内专家分月排行榜第二
2014年9月 Delphi大版内专家分月排行榜第二
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs7
本版专家分:13557
Bbs3
本版专家分:819
Bbs9
本版专家分:50645
Blank
红花 2018年11月 Delphi大版内专家分月排行榜第一
2018年5月 Delphi大版内专家分月排行榜第一
2018年2月 Delphi大版内专家分月排行榜第一
2018年1月 Delphi大版内专家分月排行榜第一
2017年12月 Delphi大版内专家分月排行榜第一
2017年8月 Delphi大版内专家分月排行榜第一
2017年7月 Delphi大版内专家分月排行榜第一
2017年5月 Delphi大版内专家分月排行榜第一
2017年3月 Delphi大版内专家分月排行榜第一
2017年2月 Delphi大版内专家分月排行榜第一
2016年12月 Delphi大版内专家分月排行榜第一
2016年11月 Delphi大版内专家分月排行榜第一
2016年10月 Delphi大版内专家分月排行榜第一
2016年9月 Delphi大版内专家分月排行榜第一
2016年8月 Delphi大版内专家分月排行榜第一
2016年7月 Delphi大版内专家分月排行榜第一
2016年6月 Delphi大版内专家分月排行榜第一
2016年5月 Delphi大版内专家分月排行榜第一
2016年4月 Delphi大版内专家分月排行榜第一
2016年3月 Delphi大版内专家分月排行榜第一
2016年2月 Delphi大版内专家分月排行榜第一
2016年1月 Delphi大版内专家分月排行榜第一
2015年12月 Delphi大版内专家分月排行榜第一
2015年11月 Delphi大版内专家分月排行榜第一
2015年10月 Delphi大版内专家分月排行榜第一
2015年9月 Delphi大版内专家分月排行榜第一
2015年8月 Delphi大版内专家分月排行榜第一
2015年7月 Delphi大版内专家分月排行榜第一
2015年6月 Delphi大版内专家分月排行榜第一
2015年5月 Delphi大版内专家分月排行榜第一
2015年4月 Delphi大版内专家分月排行榜第一
2015年3月 Delphi大版内专家分月排行榜第一
2015年2月 Delphi大版内专家分月排行榜第一
2015年1月 Delphi大版内专家分月排行榜第一
2014年12月 Delphi大版内专家分月排行榜第一
2014年11月 Delphi大版内专家分月排行榜第一
Blank
黄花 2017年11月 Delphi大版内专家分月排行榜第二
2017年4月 Delphi大版内专家分月排行榜第二
2017年1月 Delphi大版内专家分月排行榜第二
2014年10月 Delphi大版内专家分月排行榜第二
2014年9月 Delphi大版内专家分月排行榜第二
socket 客户端断线连的问题。
[code=C/C++][/code]rnrn//初始化WinSockrn WSADATA wsaData;rn if (WSAStartup(MAKEWORD(2,2),&wsaData)!=NO_ERROR)rn rn std::cout<<<<<<<<<
socket keepalive 断线
现在情况如下rn<em>客户端</em>在内网,所有的请求只能<em>客户端</em>主动发起,<em>客户端</em>和服务器均采用keepalive保活机制,问题就来了,当有一方的物理链接断开。<em>客户端</em>如何检测到链接已断<em>重</em>新发起连接,而服务器又如何知道连接断开而更新链接列表?
Socket 断线连问题
上篇文章是关于Socket创建可Socket数据处理在这里: ☞ 利用GCDSocket 创建Socket ☞ 处理Socket数据粘包问题 关于<em>断线</em><em>重</em>连的思路大概如下 当与服务器断开连接或网络出错时,先不要处理当前正在连接的<em>socket</em>,可能回应下当前UI的数据显示问题; 可以另起一个<em>socket</em>服务,与服务器尝试连接,当连接成功时,通知当前Socket进行<em>重</em>新连接
c#Socket客户端断线
c#<em>socket</em>异步编程及<em>断线</em><em>重</em>连。并怎样实现循环接受服务器的命令并处理。
完成端口如何优雅地关闭socket
小弟写了一个完成端口的socks5代理服务器做转发。用了以下代码来关闭<em>socket</em>的时候发现根本不能正常地关闭。直接就rst,ack了。大家可以看下图 图上所示红色部分就是执行下面代码的结果,根本不是
利用Delphi编写Socket通信程序
原文 http://www.programfan.com/article/showarticle.asp?id=2289   笔者在工作中遇到对局域网中各工作站与服务器之间进行Socket通信的问题。现在将本人总结出来的TServerSocket和TClientSocket两个组件的基本用法写出来,希望与您分享。 ClientSocket组件为<em>客户端</em>组件。它是通信的请求方,也就是说,它是
如何在socket发送完成后立即关闭socket?
本新手,处于学习过程中,如题,该问题困扰了我很久,至今终于没能真正的解决。 send(s,str,strlen(str),0); close<em>socket</em>(s); if(send(s,str,strle
serverSocket 怎样释放失去连接的socket资源?
我用的是ServerSocket,底层有一些板子做为<em>客户端</em>,<em>客户端</em>每5秒发送一次连接信息,服务端收到则证明连接正常,否则马上关闭这个连接,报警。 现在发现<em>客户端</em>断开之后(突然断电或者板子<em>重</em>启)服务端相
Delphi Socket 实现编程(6)
TClientSocket和TServerSocket的数据通知使用了Windwos下的消息通知机制,造成它们只适合针对窗口的WinForm程序,因为可以得到窗口的Handle句柄,用来postmessage或者sendmessage,但对于Dll这样的不存在窗口的工程就不适应了,我做了测试:       在DLL工程中引入TClientSocket,设置HostIP,HostPort后,Act
Netty客户端断线
参考:https://www.jianshu.com/p/c78b37a2ca47 与安卓交互需要用到 特此记录 public class NettyClient { public final static String HOST = &quot;192.168.31.178&quot;; public final static int PORT = 9527; private ...
Qt实现Socket断线连机制
简述 创建 Thread 类 继承 QThread,实现用单独的线程接收 <em>socket</em> 数据。 当 <em>socket</em> 与主机断开时,自动触发 OnDisConnect() 函数,从而在 run() 中执行自动<em>重</em>连代码段。 想主动断开 <em>socket</em> 连接时,把 m_isThreaStopped 设置为 true 即可。 简述 类的源码 类的使用 效果图类的源码Thread.h#ifndef THREAD
linux C socket 断线连的实现
服务器监听一个端口,我这边去创建<em>socket</em>进行长链接,过段时间发送心跳包(双方约定好的)。现在想实现服务器端口<em>重</em>启的情况下,我这边能<em>重</em>连上去。请问如何实现?我现在是如果服务器端口一关闭,我这边一发心跳包,我发心跳包的进程就死了,导致服务器端口<em>重</em>新监听的时候就没发心跳包了,更不会<em>重</em>新去连了,能给个建议我怎么做比较好。<em>重</em>新开个进程去监控这个进程有没有死掉,死掉就<em>重</em>新去连<em>socket</em>?还是监控<em>socket</em>的状态?
树莓派、python的socket断线连的问题
[code=python]# -*- coding: utf-8 -*-rnimport <em>socket</em>rnimport timernrntry:rn SERVER_IP = "123.212.125.132"rn SERVER_PORT = 6811rn server_addr = (SERVER_IP, SERVER_PORT)rn <em>socket</em>_tcp = <em>socket</em>.<em>socket</em>(<em>socket</em>.AF_INET, <em>socket</em>.SOCK_STREAM)rn <em>socket</em>_tcp.setsockopt(<em>socket</em>.SOL_SOCKET, <em>socket</em>.SO_KEEPALIVE, 1)rnrn while True:rn try:rn print("Connecting to server @ %s:%d..." % (SERVER_IP, SERVER_PORT))rn <em>socket</em>_tcp.connect(server_addr)rn breakrn except <em>socket</em>.error:rn print("Can't connect to server,try it latter!")rn time.sleep(1)rn continuern print("Receiving package...") # <em>socket</em> 连接成功,等待接收信息rnrn while True:rn try:rn number = <em>socket</em>_tcp.send(“hello world")rn print numberrn time.sleep(5)rn except <em>socket</em>.error:rn print ("<em>socket</em> error")rn except:rn print ("other error")rnexcept:rn pass[/code]rnrnrn 大家看一看上面的代码,我的代码主要是作为<em>socket</em>的<em>客户端</em>,链接远程服务器,每隔5秒钟向远程服务器发送一次“hello world”,在发送的过程中,如果出现<em>socket</em>链接错误,就在屏幕上输出“<em>socket</em> error”。rn 现在的情况是这样,我在台式电脑上使用python调试器PyCharm来运行程序,正常链接<em>socket</em>以后,假设出先网络错误,比如拔掉网线或者没有网络了,这时候按道理来说<em>socket</em>应该是断开连接的,假如我拔掉网线经过大约30秒后,PyCharm才输出“<em>socket</em> error”。rn 基于在电脑端的情况,我把相同的程序拷贝到“”树莓派“”(树莓派系统是自带的raspbian)上运行,相同情况下,比如拔掉网线,要经过20多分钟才能输出“<em>socket</em> error”。rn 我现在想就是想在<em>socket</em>连接出现错误的时候,比如拔掉网线、网络错误等导致的<em>socket</em>连接错误,能够迅速的检测到<em>socket</em>连接错误,然后进行<em>socket</em>连接,现在最大的问题就是不知道如何监测<em>socket</em>的链接状态,求各位大佬指教!~
判断socket是否已断开的方法
记得以前<em>Delphi</em>/BCB里的<em>socket</em>编程,要判断[连接的另一方]是否断开了,只要在ondisconnect事件里处理就行了!如今在C#中,这个问题的确还是个问题哦!       首先,Socket类的Connected属性只表示最后一次I/O操作的状态,如果这之后[连接的另一方]断开了,它还一直返回true, 除非你再通过<em>socket</em>来发送数据。所以通过个属性来判断是行不通的!      
EMQ进程树/MQTT连接/订阅/发布源码流程分析
写在前面EMQ作为一款优秀的开源MQTT broker,从一些库的使用以及框架的设计,可以看出作者也是非常精通Erlang的大牛!比如说对于集群化,作者自己实现了Ekka库,对于网络并发,作者自己实现了esockd。首先不论这些库性能如何,但敢于自己造轮子,会造轮子,绝对是对Erlang/OTP有着深刻理解才可以做得到的。学习了一下EMQ的一些关键业务代码,总结了连接/订阅/发布的源码,画出来进程...
STM32通过SIM800C连接EMQ服务器
自己搭建了一个EMQ的服务器,用SIM800C跑MQTT协议与EMQ服务器通信,定时ping服务器(定时器来完成的),8秒内没收到心跳保护就<em>重</em>连,这个时间也是定时器设置了,可以在初始化里面改,<em>客户端</em>I
Unknown SSL protocol error in connection to xxx:443
使用git从远程下载时,出现Unknown SSL protocol error in connection to xxx:443 错误。 很有可能是被墙在了外面,这里针对墙在外面的情况。 设置代理服务器: 第一种方法:在.gitconfig加上 http.proxy=127.0.0.1:8087 http.sslVerify=false 第二种方法:直接在命令行敲 git conf
sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:mysql
出现这个错误,应该去安装如下: pip install SQLAlchemy==1.2.13 安装以后 即可
socket长连接,断线连案例
void SendMsgToStreamSer(void* pData) { //#ifndef WIN32 signal(SIGPIPE,SIG_IGN); VT_WEBSOCKET_SERVICE::CWebSocketVideoMsgProc* pSer = (VT_WEBSOCKET_SERVICE::CWebSocketVideoMsgProc*)pData; CS
高分求socket断线连的问题
Server的代码如下:rn[code=C/C++][color=#000000]m_hSocketConn = <em>socket</em>(AF_INET, SOCK_STREAM, IPPROTO_TCP);rn if (m_hSocketConn == INVALID_SOCKET) rn rn m_hSocketConn = NULL;rn return FALSE;rn rnrn SOCKADDR_IN addrSrv;rn addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);rn addrSrv.sin_family=AF_INET;rn addrSrv.sin_port=htons(nPort);rnrn if (bind(m_hSocketConn, (SOCKADDR*) &addrSrv, sizeof(addrSrv)) == SOCKET_ERROR)rn rn close<em>socket</em>(m_hSocketConn);rn m_hSocketConn = INVALID_SOCKET;rn return FALSE;rn rn rn m_hAccept = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)AcceptThread, this, 0, NULL);rn m_bAccept = TRUE;rnrnrnvoid CScanagentTestDlg::AcceptThread(LPVOID lParam)rnrn CScanagentTestDlg *pDlg = (CScanagentTestDlg*)lParam;rn SOCKADDR_IN addrClient;rn int nLen = sizeof(SOCKADDR);rn rn while(pDlg->m_bAccept)rn rn //AfxMessageBox(L"Listen");rn Sleep(100);rn if (listen(pDlg->m_hSocketConn, 1) == SOCKET_ERROR)rn rn close<em>socket</em>(pDlg->m_hSocketConn);rn pDlg->m_hSocketConn = INVALID_SOCKET;rn return;rn rnrn if(pDlg->m_hSocketServer == INVALID_SOCKET)rn pDlg->m_hSocketServer = accept(pDlg->m_hSocketConn, (SOCKADDR*)&addrClient, &nLen);rnrn //pDlg->m_bAccept = FALSE;rn rnrn[/color][/code]rnrn接到<em>断线</em>做如下:rnclose<em>socket</em>(pDlg->m_hSocketServer);rnpDlg->m_hSocketServer = INVALID_SOCKET;rnrn可是当断开时,client再进去连接时,server就没反应, 是错在哪?listen有问题?rn
C# Socket断线连问题
其实这个问百度一搜一大堆 。但是没有 找到我要的答案 ,现在的问题是服务端断开连接后 , <em>客户端</em>就每间隔10秒去<em>重</em>连一次 ,然后等服务端回复连接时,会出现现下面这种情况,这是为什么 ,怎么解决 ,拜托各大佬给个思路rn[img=https://img-bbs.csdn.net/upload/201809/20/1537433584_920368.png][/img]
MQTT断线
MQTT<em>客户端</em>:org.eclipse.paho.client.mqttv3 MQTT服务器:EMQ MQTT服务器官网:http://emqtt.com/ 如果第一次看MQTT,可以参考:http://blog.csdn.net/whb3299065/article/details/79088928 在之前的文章中我们简单介绍了MQTT的收发消息,并没有实现<em>重</em>连机制,我在实现<em>重</em>连时,发现...
请问,在LINUX上,怎么更改WEBSPHERE的登录用户名和密码?谢谢
请问,在LINUX上,怎么更改WEBSPHERE的登录用户名和密码?谢谢
delphi 写的windows服务 安装成功 开启时失败 权限问题?
用delphi写了一个windows服务程序A,然后另一个应用程序B来控制(安装 ,启动,停止,卸载等)出现了问题。 表现如下: 1 如果以管理员在cmd 模式下安装与启动 服务A 都没有问题 2 如
Delphi MQTT客户端
<em>Delphi</em> MQTT<em>客户端</em> 这是个demo 参考参考
MQTT--Qt5编写MQTT-client客户端
库的下载地址:https://github.com/emqtt/qmqtt 好不容易编译成功,于是写下经验。编译环境: 桌面环境:Windows10 Qt5版本: 开始1、下载库文件:https://github.com/emqtt/qmqtt2、解压出来3、进入src文件下双击src.pro4、配置文件5、点击build完成6、<em>重</em>点!!! - 此时,在根目录下就会生成两个文件夹:inclu
EMQ进程树/MQTT连接/订阅/发布源码流程分析【转载】
https://blog.csdn.net/hui6075/article/details/79495556 写在前面 EMQ作为一款优秀的开源MQTT broker,从一些库的使用以及框架的设计,可以看出作者也是非常精通Erlang的大牛! 比如说对于集群化,作者自己实现了Ekka库,对于网络并发,作者自己实现了esockd。首先不论这些库性能如何,但敢于自己造轮子,会造轮子,绝对是对Er...
websocket断线
项目将应用python、mysql、redis、tornado、sqlalchemy、sockjs、dplayer、wtforms、werkzeug等技术打造一个完整弹幕视频+多人在线聊天室。我将实战过程中带大家快速掌握python mtv的设计模式、基于线程池的异步io非阻塞、web<em>socket</em>实时长连接的技术原理。rn
QTcpSocket断线
m_pTcpSocket=new QTcpSocket; connect(m_pTcpSocket,SIGNAL(disconnected()), this,SLOT(slotDisconnected()),Qt::DirectConnection); m_pTcpSocket->connectToHost(HostAddr,Port); if(m
8.Netty之断线
Netty之<em>断线</em><em>重</em>连
Netty的断线
因为工作中经常使用到TCP,所以会频繁使用到诸如Mina或Netty之类的通信框架,为了方便项目的逻辑调用,经常会在框架的基础上再一次进行封装,这样做其实有画蛇添足的嫌疑,但也是无奈之举。 /** * 提供<em>重</em>连功能,需传入bootstrap,并实现handlers */ @ChannelHandler.Sharable public abstract class FunctionsChanne...
Mina 断线
Mina <em>断线</em><em>重</em>连     定义:这里讨论的Mina <em>断线</em><em>重</em>连是指使用mina作为<em>客户端</em>软件,连接其他提供Socket通讯服务的服务器端。Socket服务器可以是Mina提供的服务器,也可以是C++提供的服务器。            一、<em>断线</em><em>重</em>连的方式;     1. 在创建Mina<em>客户端</em>时增加一个监听器,或者增加一个拦截器,当检测到Session关闭时,自动进行<em>重</em>连。    ...
MQTT协议详解
首先给出MQTT协议的查看地址:http://public.dhe.ibm.com/software/dw/webservices/ws-mqtt/mqtt-v3r1.html 当然也有PDF版的,百度一下,不过个人感觉不是官网上的字体和排版最舒服。 那么这个协议是用做什么或有什么特色呢?下面是mqtt.org上的首段介绍: It was designed as an extre
谈谈delphi中Socket连接失败的异常处理方法
在idhttp,TClientSocket等网络组件中,如果连接不成功,经常会弹出个英文显示的错误界面,请问大家是怎样处理的? 如下程序: procedure TForm1.Button1Click(
Serversocket问题/客户每次连接-断开一次,服务程序占用内存就增加4K,为什么?
客户每次连接-断开一次,服务程序占用内存就增加4K,为什么?
ServerSocket连接断开处理方式
ServerSocket连接断开处理方式概述:异常信息:之前有人给出的方案:代码分析场景分析1.建立Socket连接,底层就是TCP连接:2.发送数据2.断开连接 概述: WebSocket是一种在单个TCP连接上进行全双工通信的协议。在我们应用的过程仲,<em>客户端</em>会出现无故断开的情况。这里提供一种连接断开的异常检测机制。 异常信息: 系统中出现的异常 2019-03-12 18:56:24,044 ...
rocketmq推送出现异常,有时出现,大部分都成功
本人没有用过rocketmq,对其中的原理不了解。希望哪位大神帮忙给看看 com.alibaba.rocketmq.client.exception.MQClientException: Send t
断线
我想写一个远程控制数据库的小程序,能实现<em>断线</em><em>重</em>连,请问各位有什么好的方法?(新手一枚[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/13.gif][/img])
okHttpWebSocket断线
[size=14px]okHttpWebSocket<em>断线</em><em>重</em>连怎么做啊??各位哥!![/size]
obs-studio 断线
obs发送逻辑在rtmp-stream.c文件中 暴露出的<em>重</em>连接口  /**  * Sets the reconnect settings.  Set retry_count to 0 to disable reconnecting.  */ EXPORT void obs_output_set_reconnect_settings(obs_output_t *output, int
断线连机制
Zookeeper的<em>客户端</em>具有自动<em>重</em>连机制,当出现网络异常时,<em>客户端</em>会自动<em>重</em>连直到与集群中的某台机器连接成功,连接过程如下图所示: 1. 网络异常情况包括网络闪断、ZK服务器宕机等情况,这会导致连接断开CONNECTION_LOSS,此时<em>客户端</em>会收到事件None-Disconnected; 2. 如果在SessionTimeout时间内连接成功,则<em>客户端</em>收到事件None-SynConnect
校园网断线
很好的,很好的解决了校园网<em>断线</em><em>重</em>连的问题,方便广大用户的切实需要
断线连总结
<em>断线</em><em>重</em>连总结 gateserver负责所有与<em>客户端</em>的直接连接 m_conns[10000]也就是一个gateserver最多可以维持10000条<em>socket</em>连接,蓝月采用的是tcp 行走各种消息都是tcp,不存在丢包一说,只会延迟 每个<em>客户端</em>点击登录时会做以下事情 建立<em>socket</em> tcp连接,向gateserver 的ip port发送请求, gateserver收到
数据库断线
数据库<em>断线</em><em>重</em>连是指,在服务器出现某些原因导致数据库连接中断,需要启动<em>重</em>新连接数据库,并<em>重</em>新执行中断的数据库操作。 Thinkphp5.0 是支持数据库<em>断线</em><em>重</em>连的,代码很值得学习。它支持查询 query(包括select查询等读取操作),执行 execute (包括insert、update等写入操作)和 事务 startTrans() 的<em>断线</em><em>重</em>连 这三种类型的数据库<em>断线</em><em>重</em>连操作。 下面
websocket 断线
摘要 web<em>socket</em> reconnect web<em>socket</em>是html5发布之后出现的一种新技术,说它是新技术,其实也不是多新的技术了,因为毕竟也有2-3年了,但是找了很多国内的实例,缺发现不多,不知道是它不好用呢,还是说这种技术原来就有缺陷呢,咱们暂且不说,今天我们就来介绍一下web<em>socket</em>的<em>断线</em><em>重</em>连,,,, 这里先提供一个类库,https://github.com/j
MINA断线连.
MINA<em>断线</em><em>重</em>连. [url]http://chwshuang.iteye.com/blog/2028951[/url] Netty4更新详解 [url]http://janeky.iteye.com/blog/1844201[/url]
手游断线
<em>断线</em><em>重</em>连,其实并不是一个神马高深的东西,相信各位做游戏的程序们都处理过这个问题,但是,怎么把这个<em>断线</em><em>重</em>连做的安全,完善呢?下面就跟各位大神来讨论讨论这个问题~! 游戏中,<em>断线</em><em>重</em>连(这里是基于TCP长连来讨论的)其实跟游戏类型有关,比如页游,端游,还是手游。当然,我只做过页游和手游,所以咱不对端游发表意见。对于页游而言,一般是PC网络是很稳定的,如果不稳定,其实是没办法玩游戏的,所...
js定时器断线连,
我通过ajax请求action,action返回信息停止定时器,可是断网<em>重</em>连后定时器会弹出好几次信息才停止rnfunction getAlertMessage() rn var url = $("#alertMaessage").val();rn $.post(url, , function(data) rn var loggerinfo = data.split("_");rn if (loggerinfo[1] == "success") rn alert("导入成功");rn clearInterval(alertTimer);rnrn else if (loggerinfo[1] == "fail") rn alert("导入失败");rn clearInterval(alertTimer);rn rn );rn
tcpclient断线
现在我只有一个可用本地端口,要求与对方服务器保持连接。rn当检测到<em>断线</em>的时候,对tcpclient进行close,然后<em>重</em>新使用这个本地端口进行<em>重</em>连。rn释放以后有时候能<em>重</em>连成功,但是经常端口保持着fin_wait状态或者偶尔是close_wait状态,导致不能通过这个端口与对方建立连接rn有什么办法能保证close的时候关闭端口,使得我可以通过这个端口进行<em>重</em>连?
TCP的断线
当<em>断线</em>的时候,我想用原有的SOCKET<em>重</em>连。如果不close<em>socket</em>出现10056的错误,用一个str<em>socket</em>保存后,close<em>socket</em>,然后用str<em>socket</em>连接,出现10038的错误。rn有什么办法能够不改变<em>socket</em>的值<em>重</em>连呢?
断线连 心跳
using System.Collections;using System.Collections.Generic;using UnityEngine;using System.Net;using System.Net.Sockets;using UnityEngine.UI;using System;using System.Text;[XLua.LuaCallCSharp]public cla...
Socket 客户端与服务端通信【心跳机制+断线连】
直接上代码,让代码说话! //Server.h #pragma once #include &amp;lt;stdio.h&amp;gt; #include &amp;lt;iostream&amp;gt; #include &amp;lt;winsock2.h&amp;gt; #include &amp;lt;map&amp;gt; #pragma comment (lib, &quot;ws2_32.lib&quot;) using namespace std; #de...
C#+Socket客户端断线连的解决办法
流程如下: 程序开始 -> 先connect一下服务端 -> 若连接成功 -> 程序继续执行该干嘛干嘛                                                        |                                                        |                            
mina客户端断线连、心跳设置
最近用mina写<em>客户端</em>一点心得,分享下,如果有不对的地方,希望留言更正。   编码、解码工厂就不写了,网上有很多。   private static NioSocketConnector connector ; private static IoSession session; public static IoSession getIoSession(){ retu...
WPF Socket客户端连)
WPF Socket<em>客户端</em>(<em>重</em>连)
Delphi有没有断线连的最好方案??
有没有象ADO.net一样的解决方案呢???rnAdo好象必须是连接的,如果中途断了,程序就要<em>重</em>启的
c#socket异步及断线
c#<em>socket</em>异步编程及<em>断线</em><em>重</em>连。并怎样实现循环接受服务器的命令并处理。
netty 断线连+心跳
netty使用自带工具类实现<em>断线</em><em>重</em>连和心跳包
ActiveMQ的断线连机制
<em>断线</em><em>重</em>连机制是ActiveMQ的高可用性具体体现之一。 具体就是使用failover方式,使得连接断开之后,可以不断的<em>重</em>试连接到一个或多个brokerURL。 例如:failover:(tcp://127.0.0.1:61616) ,这里可以使用多个url。 默认情况下,如果client与broker直接的connection断开,则client会新起一个线程, 不断的从url参数中获取...
mysql断线连设置
//mysql_real_connect之后调用: my_bool reConnect = 1; mysql_options(m_mysql, MYSQL_OPT_RECONNECT, &reConnect);  // 另外:线程里面5秒ping一次 mysql_ping(
WebSocket断线连记录
<em>断线</em><em>重</em>连与心跳包<em>重</em>连 公司最近在做一个抽奖的运用,年会快到了嘛 应用基于微信页来做开发的,其中有一个功能是需要即时交互,在团队定下的方案中,就用<em>socket</em>,于是我便和web<em>socket</em>会面了; runoob上的例子:http://www.runoob.com/html/html5-web<em>socket</em>.html 看到网上html web<em>socket</em>很多的代码demo都是这样5行代码一个模子...
ActiveMQ的断线连机制
<em>断线</em><em>重</em>连机制是ActiveMQ的高可用性具体体现之一。 具体就是使用failover方式,使得连接断开之后,可以不断的<em>重</em>试连接到一个或多个brokerURL。 例如:failover:(tcp://127.0.0.1:61616) ,这里可以使用多个url。 默认情况下,如果client与broker直接的connection断开,则client会新起一个线程, 不断的从url参数中获取一...
Android Xmpp断线
1、Xmpp<em>断线</em><em>重</em>连在android基于openfire服务器,Asmack开源框架的即时通讯应用。做<em>断线</em><em>重</em>连机制。 思路 开启服务XmppService在后台长时间监听 在服务XmppService的onStart()中设置监听事件,如果xmpp断开则,打开定时器 在定时器中判断,如果有网络就<em>重</em>新连接,如果没有网络,继续走定时器,在后台5s判断一次 最终如果有了网络就再次连接服务器
vpn断线连软件
vpn<em>断线</em><em>重</em>连软件vpn<em>断线</em><em>重</em>拨自动<em>重</em>连
websocket断线连问题
[code=html]rn rn workerman-chat PHP聊天室 Web<em>socket</em>(HTLM5/Flash)+PHP多进程<em>socket</em>实时推送技术rn rn rn rn rn rn rn rn rnrn rnrnrn rn rn rn rn rn rn rn rn rn rn 所有人rn rn rn rn rn rn 房间列表:(当前在 房间0 ? intval($_GET['room_id']):1; ?>) rn 房间1 房间2 房间3 房间4rn rn rn PHP多进程+Web<em>socket</em>(HTML5/Flash)+PHP Socket实时推送技术 Powered by workerman-chatrn rn rn rn rn rn rn rn rn rn rnrnrn[/code]rnrn1 为什么我<em>断线</em>以后 我文字发布出去 <em>重</em>新连接上 却发出去了????rn2 为什么我<em>断线</em>以后 <em>重</em>新连接 却显示<em>重</em>连成功 服务端没有主动发出这样得消息
ADOConnection断线连问题
使用ADOConnection连接oracle数据库,开始正常,当网络断开时数据库连接失败(此时查询ADOConnection.connected属性是true),rn用了 ADOConnection的query在open时都报错,想了一个解决方法,使用定时器判断如下:rn[code=<em>Delphi</em>(Pascal)]rnvarrn adoq : TADOQuery;rnbeginrn adoq := TADOQuery.Create(nil);rn adoq.Connection := dm.ADOConn;rn adoq.Close;rn adoq.SQL.Clear;rn adoq.SQL.Add('select * from cat where 1=0');rn tryrn adoq.Open;rn exceptrn tryrn dm.ADOConn.Connected := false;rn dm.ADOConn.Connected := true;rn exceptrn end;rn end;rnend;rn[/code]rn按理说应该<em>重</em>连上了,可是结果还是未连接状态。query在open时依然报错,请问怎么回事啊,怎样解决呢?
websocket断线连机制
在使用web<em>socket</em>的过程中,有时候会遇到网络断开的情况,但是在网络断开的时候服务器端并没有触发onclose的事件。这样会有:服务器会继续向<em>客户端</em>发送多余的链接,并且这些数据还会丢失。所以就需要一种机制来检测<em>客户端</em>和服务端是否处于正常的链接状态。因此就有了web<em>socket</em>的心跳了。还有心跳,说明还活着,没有心跳说明已经挂掉了。 一、心跳<em>重</em>连机制(考虑网络因素) 实现机制 心跳机制...
paho 断线连方法
paho没分钟自动检测连接状态,若发现连接断开,则自动<em>重</em>连.
mqtt+java+spring(含断线连)
一.pom.xml中添加mqtt的依赖: &lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-boot-starter-integration&lt;/artifactId&gt; ...
Netty断线连实现
netty<em>断线</em><em>重</em>连实现 学习文章 浅析 Netty 实现心跳机制与<em>断线</em><em>重</em>连 心跳机制 心跳是TCP长连接中,c-s之间发送的一种特殊的数据包,用来通知对方还在线,以确保TCP连接的有效性。 原理是:当在一段时间Idle后,c或者s会发送一个特殊的数据包,也就是ping包给对方,当对方收到一个ping包时,会返回一个pong包以证明自己还在线。这样就确保了TCP连接的有效性。 在netty中使用心跳...
Netty 断线连解决方案
本篇文章是Netty专题的第七篇,前面六篇文章如下: - 高性能NIO框架Netty入门篇 - 高性能NIO框架Netty-对象传输 - 高性能NIO框架Netty-整合kryo高性能数据传输 - 高性能NIO框架Netty-整合Protobuf高性能数据传输 - Netty4自带编解码器详解 - Netty粘包拆包解决方案 用Netty实现长连接服务,当发生下面的情况时,会发生<em>断线</em>...
TCP异步传输断线
异步TCP传输,可以实现短线超时<em>重</em>连机制,代码中有详细注释
zookeeper 的断线连实现
zookeeper并没有提供<em>断线</em><em>重</em>连的功能,必须我们手动实现,这里使用 Curator来实现了zookeeper的<em>断线</em><em>重</em>连功能
c#socket异步编程和断线
最近想到要写写博客,那么就从2016的第一天开始吧。先写下c#中<em>socket</em>的异步编程吧,c#为<em>socket</em>提供了异步编程的接口我们就用这些写个自己的类吧 public class SocketWrapper { private static int len_buf; byte[] buffer; Socket commus
linux 宽带断线
请教各路大神 centos6.7 的default 路由ppp0 老是丢失怎么整呢,每次<em>断线</em>都要route add default dev ppp0一次,rn开始时觉得可能是网卡问题,换了个网卡问题依旧,每隔一段时间就断网一次,有没有什么办法能检测是否断网,rn断网之后自动<em>重</em>连,即自动执行route add default dev ppp0,感激不尽......[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/2.gif][/img]rn
oracle 断线连问题。
用C++通过 ocilib 连接 oracle数据库。。。rnrnrn2台机器。<em>客户端</em>上连接好另一台机器上的oracle数据库,不停的用程序去更新oracle数据库。rnrnrn问题:在<em>客户端</em>或者服务器之间的网线断了。。那么<em>客户端</em>就无法在<em>重</em>新自动连接上服务器。。。rnrnrnrn求大神们。。告诉下。。如何用C+++代码实现<em>断线</em>后。。也能<em>重</em>新连接上oracle数据库?
C# MQTT 断线
初次接触MQTT这篇博客借鉴了:https://blog.csdn.net/lxrj2008/article/details/76067242自己做了一些修改1.添加全局静态变量 uPLibrary.Networking.M2Mqtt.MQTTConfig.IsSocketRun;class MQTTConfig{ public static bool IsSocketRun = false; ...
django的数据库断线
django每次查询都会被把连接关闭,想保持长连接方法如下: from django.core import signals from django.db import close_connection # 取消信号关联,实现数据库长连接 signals.request_finished.disconnect(close_connection) 观察数据库的连接数 每过一段时间...
如何实现断线连?
我有一个上传下载的工具,创建的工作者线程负责上传和下载,然后有一个定时器负责UI的显示。rn我要实现<em>断线</em><em>重</em>连的功能,但是我的做法有问题。rn我设置了一个全局变量,工作者线程rnwhile(true)rnrnrn在如果因网络问题失败的地方都添加了很多 变量=FALSE; continue;rn这样子的话在上传下载多个文件后会出现错误,[img=http://hi.csdn.net/attachment/201109/13/3902638_13158975779k3X.jpg][/img]rnrn大家都什么好的<em>断线</em><em>重</em>连的方法没?rn如果<em>断线</em>了,应该应该用terminatethread,把资源全部释放掉?rn
nio通信断线
跪求java nio<em>客户端</em>和服务器端通信通用类,<em>客户端</em>要求能处理<em>断线</em><em>重</em>连,关键地方有注释。rnrn明天中午结贴rnrn
httpClient断线连机制
httpclient<em>断线</em>之后会有一个<em>重</em>新发送请求的机制,这个机制有时会导致一些问题,比如现在<em>客户端</em>往服务器端插入一条数据,请求发送出去了 ,但还没等服务器响应<em>客户端</em>就<em>断线</em>了,这个时候等<em>客户端</em>再次连接上网络后<em>客户端</em>又会马上发送一条插入请求,但是其实上一条数据是插入成功的,只是<em>客户端</em>接收不到响应,导致<em>重</em>复插入一条数据的现象。 解决方法如下: DefaultHttpClient client = n
Socket连的问题
我用client<em>socket</em>和服务器连接,服务器断掉后,<em>重</em>启,想让client<em>socket</em><em>重</em>新连接,但只能在client<em>socket</em>所在的窗体上触发事件,不能在另个窗体上触发client<em>socket</em>连接,怎么实现?
Socket连问题
下面是连接程序rn我想在网络断开的时候<em>重</em>新连,怎么改,谢谢rn加注释的话异常是在已连接的<em>socket</em>申请连接rnpublic void Connect2Server()rnrn IPAddress ipAddress = IPAddress.Parse(szSvrIPAddr);rn EndPoint remoteEP = new IPEndPoint(ipAddress, SvrPort);rn/* rn Socket SocketClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);rnrn if (SocketClient.Connected)rn rn SocketClient.Shutdown(SocketShutdown.Both);rn SocketClient.Close();rn Thread.Sleep(100);rn rn*/rnrn while(!SocketClient.Connected)rn rn tryrn rn SocketClient.Connect(remoteEP);rn rn catch(Exception exc)rn rn Log.WriteEntry("Connect to Server Error:" + exc.Message, EventLogEntryType.Error, 2);rn rn Thread.Sleep(30 * 1000); //30srn rn
socket连解决
<em>socket</em><em>重</em>连解决<em>socket</em><em>重</em>连解决<em>socket</em><em>重</em>连解决
Android Socket连接(模拟心跳包,断线连,发送数据等)
android <em>socket</em>连接 <em>socket</em>心跳包,<em>断线</em><em>重</em>连,发送数据
socket连接gprs成功后,断线无法连。
自己做的<em>socket</em>连接gprs程序,可以连接gprs设备。但gprs设置<em>断线</em>(如:断电、网络原因等),却无法<em>重</em>连。rn自己觉得好象是程序卡在什么地方。希望各位不吝赐教。rn以下是部分程序代码:rnpublic void ClientConnect()rn rn while (true)rn rn mySocket = tcpListener.AcceptSocket();//将新连接挂起,直到连接成功rnrn IPEndPoint clientep = (IPEndPoint)mySocket.RemoteEndPoint;//获取远程IP和端口号rn rn strCliIP = clientep.Address.ToString();//获取远程IPrn strCliPort = clientep.Port.ToString(); //获取远程端口号rnrn this.BeginInvoke(new ShowDelegate(Cli_IP));//委托并显示远程IP和端口号 rn rn bytes = mySocket.Receive(ReveiceData, ReveiceData.Length, 0);rn recvStr = Encoding.ASCII.GetString(ReveiceData, 0, bytes);rn rn this.BeginInvoke(new ShowDelegate(dbString));//委托并显示远程IP和端口号rn rn rn if (recvStr.StartsWith("\r"))rn rn strZbm = recvStr.Substring(1, 3);rn rnrn if (htable.Count <= 0)rn rn htable.Add(strZbm, mySocket);//调用Hashtable rn this.BeginInvoke(new ShowDelegate(this.Cli_IP_Port));//委托并显示远程IP和端口号rn this.BeginInvoke(new ShowDelegate(this.Hashtable_H));//委托并显示Hashtablern rn elsern rn if (htable.Contains(strZbm))rn rn htable.Remove(strZbm);rn htable.Add(strZbm, mySocket);rn this.BeginInvoke(new ShowDelegate(this.Cli_IP_Port));//委托并显示远程IP和端口号rn this.BeginInvoke(new ShowDelegate(this.Hashtable_H));//委托并显示Hashtablern rn elsern rn htable.Add(strZbm, mySocket);rn this.BeginInvoke(new ShowDelegate(this.Cli_IP_Port));//委托并显示远程IP和端口号rn this.BeginInvoke(new ShowDelegate(this.Hashtable_H));//委托并显示Hashtablern rn rn ReadT();rn rn rnrn rn public void ReadT()rn rn thread = new Thread(new ThreadStart(ClientConnect));rn rn while (true)rn rn if (tcpListener.Pending())//判断是否有新连接 rn rn ClientConnect();rn rn elsern rn foreach (DictionaryEntry de in htable)//遍历读Hashtablern rn string _clientName = de.Key as string;//获得Hashtable中套接字的句柄rn Socket _clientSkt = de.Value as Socket;//获得Hashtable中的套接字rnrn bytes = _clientSkt.Receive(ReveiceData, ReveiceData.Length, 0);//获得数据长度rn recvStr = Encoding.ASCII.GetString(ReveiceData, 0, bytes);//将ASCII类型转换为STRING类型rn //数据插入!!!!!!!! rn this.BeginInvoke(new ShowDelegate(dbString));//委托并显示远程IP和端口号 rn rn rn rn rn
C# socket断线连等异常情况处理
请教大家一个问题啊,现在做一个数据采集的软件,就是一个GPS模块通过GPRS以TCP的方式发送数据,我这边用<em>socket</em>异步多线程的方式(因为技术原因,采用的是一个GPS模块对应一个端口的方式)接收数据,现在数据都能接收存入数据库,请问如何解决例如<em>断线</em><em>重</em>连这类异常的情况呢,比如说网络断了<em>重</em>新连接的话就报错。第一次贴代码,大家见谅rnrnrnusing System;rnusing System.Collections;rnusing System.Collections.Generic;rnusing System.Data;rnusing System.Linq;rnusing System.Net;rnusing System.Net.Sockets;rnusing System.Text;rnusing System.Threading;rnusing System.Threading.Tasks;rnusing System.Configuration;rnusing System.Data.SqlClient;rnusing Mono.Security.Authenticode;rnusing Npgsql;rnrnnamespace GPSDArnrn class Programrn rn /// rn /// 车辆-端口rn /// rn public static Hashtable CarPortHashtable = new Hashtable();rnrn /// rn /// 本机IPrn /// rn public static IPAddress ServerIpAddress;rnrn /// rn /// 缓冲区大小rn /// rn public const int BUFFER_SIZE = 20 * 1024;rnrn private static byte[] buffers = new byte[BUFFER_SIZE];rnrn /// rn /// 线程标识rn /// rn //public static ManualResetEvent allDone = new ManualResetEvent(false);rnrn /// rn /// 线程标识rn /// rn //private static ManualResetEvent readDone = new ManualResetEvent(false);rnrn /// rn /// 线程标识池rn /// rn public static Hashtable AllDoneManualResetEvent = new Hashtable();rnrn /// rn /// 线程标识池rn /// rn public static Hashtable ReadDoneManualResetEvent = new Hashtable();rnrn /// rn /// GPGGA数据rn /// rn public static Hashtable GPGGAHashtable = new Hashtable();rnrn /// rn /// GPRMC数据rn /// rn public static Hashtable GPRMCHashtable = new Hashtable();rnrn private static string connsql =rn ConfigurationManager.ConnectionStrings["PortDBConnectStr"].ConnectionString.ToString();rnrnrn static void Main(string[] args)rn rn //获取端口信息rn //GetCarIDPort();rnrn //string connpg = ConfigurationManager.ConnectionStrings["PgDBConnectStr"].ConnectionString.ToString();rn //NpgsqlConnection con=new NpgsqlConnection(connpg);rn //con.Open();rnrn //获取本机IPrn if (!IPAddress.TryParse(GetServerIP(), out ServerIpAddress))rn rn Console.WriteLine("无法获取本机IP");rn return;rn rnrn //对每一个端口进行监听,每一辆车对应一个端口rn //foreach (DictionaryEntry entry in CarPortHashtable)rn //rn // // 线程需要的参数赋值rn // CarPort carPort = new CarPort();rn // carPort.CarID = (int)entry.Key;rn // carPort.Port = (int)entry.Value;rnrn // ManualResetEvent allDone = new ManualResetEvent(false);rn // ManualResetEvent readDone = new ManualResetEvent(false);rnrn // AllDoneManualResetEvent.Add((int)entry.Key, allDone);rn // ReadDoneManualResetEvent.Add((int)entry.Key, readDone);rnrn // Thread thread = new Thread(BeginListen);rn // thread.Name = carPort.CarID + "-" + carPort.Port + "";rn // thread.IsBackground = true;rn // thread.Start(carPort);rnrn //rnrn // 线程需要的参数赋值rn CarPort carPort = new CarPort();rn carPort.CarID = 1;rn carPort.Port = 20110;rn ManualResetEvent allDone = new ManualResetEvent(false);rn ManualResetEvent readDone = new ManualResetEvent(false);rn AllDoneManualResetEvent.Add(1, allDone);rn ReadDoneManualResetEvent.Add(1, readDone);rn Thread thread = new Thread(BeginListen);rn thread.IsBackground = true;rn thread.Name = carPort.CarID + "-" + carPort.Port + "";rn thread.Start(carPort);rnrn Console.Read();rn rnrn /// rn /// 开始监听rn /// rn /// 车辆-端口参数rn public static void BeginListen(object o)rn rn CarPort carport = (CarPort)o;rnrn IPEndPoint iep = new IPEndPoint(ServerIpAddress, carport.Port);rn //IPEndPoint iep = new IPEndPoint(IPAddress.Parse("192.168.1.217"), 20110);rn Socket mSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);rnrn StateObject stateObjectAccept = new StateObject();//传递参数rn stateObjectAccept.workSocket = mSocket;rn stateObjectAccept.carID = carport.CarID;rn stateObjectAccept.port = carport.Port;rn tryrn rn mSocket.Bind(iep);rn mSocket.Listen(3);rnrn while (true)rn rn // Set the event to nonsignaled state. rn //allDone.Reset();rn ((ManualResetEvent)AllDoneManualResetEvent[stateObjectAccept.carID]).Reset();rnrn // Start an asynchronous <em>socket</em> to listen for connections. rn Console.WriteLine(DateTime.Now.ToString() + "\t" + stateObjectAccept.carID + "\t" +rn "Waiting for a connection...");rn mSocket.BeginAccept(new AsyncCallback(AcceptCallback), stateObjectAccept);rn // Wait until a connection is made before continuing. rn //allDone.WaitOne();rn ((ManualResetEvent)AllDoneManualResetEvent[stateObjectAccept.carID]).WaitOne();rnrn rn rn catch (Exception e)rn rn Console.WriteLine("BeginListen"+"----"+e.Message);rnrn rn rn rnrn /// rn /// 异步操作回调函数rn /// rn /// 一步操作状态rn public static void AcceptCallback(IAsyncResult ar)rn rn // Get the <em>socket</em> that handles the client request. rn //Socket listener = (Socket)ar.AsyncState;rn //Socket handler = listener.EndAccept(ar);rn tryrn rn StateObject stateObjectRead = (StateObject)ar.AsyncState;rn Socket handler = stateObjectRead.workSocket.EndAccept(ar);rn stateObjectRead.workSocket = handler;rnrn // Signal the main thread to continue. rn //allDone.Set();rn ((ManualResetEvent)AllDoneManualResetEvent[stateObjectRead.carID]).Set();rn while (true)rn rn //readDone.Reset();rn ((ManualResetEvent)ReadDoneManualResetEvent[stateObjectRead.carID]).Reset();rnrn Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "\t" + stateObjectRead.carID + "\t" + "BeginReceive...");rn handler.BeginReceive(buffers, 0, BUFFER_SIZE, 0, new AsyncCallback(ReadCallback),rn stateObjectRead);rnrn //readDone.WaitOne();rn ((ManualResetEvent)ReadDoneManualResetEvent[stateObjectRead.carID]).WaitOne();rn rn rn catch (Exception e)rn rn Console.WriteLine("AcceptCallback" + "----" + e.Message);rnrn rn rnrn
讨论一种可靠的socket断线连方法
做tcp<em>客户端</em>,有时网络问题掉线了,要快速检测到并且<em>重</em>新连接。目前的思路是用send和recv出错来判断掉线,然后关闭接收发送线程,关闭<em>socket</em>,<em>重</em>新创建<em>socket</em>来连接。但实际中发现掉线后<em>重</em>连会出现错误:Network is unreachable。查看/dev/下的设备,发现ttyUSB1和ttyUSB2都不见了(程序刚开始运行时是在的,ttyUSB2是3g通信模块设备)。不知道是什么问题。rnrn各位有什么比较好的方法可以快速检测到<em>断线</em>并且<em>重</em>新连接吗,有遇到类似问题的吗,请指教一下。rnrn检测到掉线后调用的连接线程函数:rn[code=c]rnvoid* TCP_CLIENT::connect_thread_fun(void* data)rnrn TCP_CLIENT* parent = (TCP_CLIENT*)data;rn // create a <em>socket</em>rn if((parent-><em>socket</em>_handle = <em>socket</em>(AF_INET,SOCK_STREAM,0))== -1)rn rn perror("连接服务器创建<em>socket</em>失败");rn return NULL;rn rn elsern rn //set <em>socket</em> unblockrn int x = fcntl(parent-><em>socket</em>_handle,F_GETFL,0);rn fcntl(parent-><em>socket</em>_handle,F_SETFL,x|O_NONBLOCK);rn rnrn //connect to the serverrn if(parent->connect_retry(parent-><em>socket</em>_handle,(struct sockaddr*)&parent-><em>socket</em>_addr,sizeof(parent-><em>socket</em>_addr)) == -1)rn rn parent->disconnect_serv();rn parent->trying_connect = false;rn perror("服务器连接失败");rn return NULL;rn rn elsern rn serv_connected = true;rn parent->trying_connect = false;rn coutrecv_thread,NULL,recv_thread_fun,parent);rn pthread_detach(parent->recv_thread);rn rnrn//APUE抄来的连接retry函数rnint TCP_CLIENT::connect_retry(int sockfd, const struct sockaddr * srv_addr, socklen_t addrlen)rnrn int nsec;rn for(nsec = 1;nsec < MAXSLEEP;nsec <<= MAXSLEEP/2)rn sleep(nsec);rn rn return -1;rnrnrnbool TCP_CLIENT::disconnect_serv()rnrn if(<em>socket</em>_handle != -1)rn rn close(<em>socket</em>_handle);rn <em>socket</em>_handle = -1;rn rnrn serv_connected = false;rn return true;rnrnrn[/code]
js socket心跳链接及断线连处理
//Socket通讯工具类 var heartCheck = { timeout: 10000, //10秒发一次心跳 timeoutObj: null, serverTimeoutObj: null, servetInterval:null, reset: function() { clearTimeout(this.timeoutObj); clea...
雪狐桌面精灵(闹钟、天气、股票、节日等多功能)下载
雪狐桌面精灵: 小巧、精致,半透明的镶嵌在桌面背景中 支持日历、月历、时钟、网络天气预报、节日、提醒、任务等功能,并支持任意组合显示 节日、提醒、任务功能让您的生活井井有条 30余款漂亮的皮肤,必有一款让您中意! 网络天气预报功能让您随时了解当前及今后的天气情况 漂亮的时钟让您彻底和简陋的Windows的时间栏说bye-bye 支持公元1年~9999年的真正万年历 半透明,且支持镶嵌在桌面上(按“显示桌面”按钮也无法吃掉她),不影响其它操作! 鼠标穿透功能,程序再也不会影响您的正常工作了 多语言支持,不会再有英文操作系统下菜单全是???的问题了 用户可以自定义每周的第一天 相关下载链接:[url=//download.csdn.net/download/wfresa512/2597375?utm_source=bbsseo]//download.csdn.net/download/wfresa512/2597375?utm_source=bbsseo[/url]
TCP-IP详解下载
详细讲述了有关TCP-IP的四层及相关的协议和各协议是如何通信。 相关下载链接:[url=//download.csdn.net/download/qin_1238/4465429?utm_source=bbsseo]//download.csdn.net/download/qin_1238/4465429?utm_source=bbsseo[/url]
三网合一 EOC下载
三网合一 EOC设计测试报告 是我们公司产品的广院的测试报告 赶紧下吧 相关下载链接:[url=//download.csdn.net/download/luly101/7895325?utm_source=bbsseo]//download.csdn.net/download/luly101/7895325?utm_source=bbsseo[/url]
相关热词 c#检测非法字符 c#双屏截图 c#中怎么关闭线程 c# 显示服务器上的图片 api嵌入窗口 c# c# 控制网页 c# encrypt c#微信网页版登录 c# login 居中 c# 考试软件
我们是很有底线的